Technologieaustausch

Wie viel Speicher überschreitet eine iOS-App, bevor eine Systemspeicherwarnung angezeigt wird?

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Wie viel Speicher überschreitet eine iOS-App, bevor eine Systemspeicherwarnung angezeigt wird?

In iOS-Anwendungen wird das Auslösen von Systemspeicherwarnungen dynamisch vom iOS-Betriebssystem bestimmt und ist kein fester Schwellenwert. Das System bestimmt anhand des verfügbaren Speichers des aktuellen Geräts, der Speicheranforderungen anderer laufender Anwendungen und der Speichernutzung der aktuellen Anwendung, ob eine Speicherwarnung ausgegeben werden soll.

Es wird eine Speicherwarnung ausgelöst

  1. Gerätespeicherkonfiguration: Verschiedene Geräte verfügen über unterschiedliche Speichermengen. Ältere Geräte verfügen beispielsweise möglicherweise nur über 1 GB Speicher, während neuere Geräte über 4 GB oder mehr verfügen.
  2. Systemspeicherdruck: Wenn Ihr System unter hoher Speicherauslastung steht, werden möglicherweise häufiger Speicherwarnungen ausgegeben.
  3. Speichernutzung der Anwendung: Wenn eine App viel Speicher beansprucht, ist die Wahrscheinlichkeit höher, dass das System eine Speicherwarnung ausgibt, damit die App unnötigen Speicher freigeben kann.

Speicherwarnstufe

iOS bietet drei Speicherwarnstufen, die Entwickler nutzen können UIApplicationDelegate realisiert durchapplicationDidReceiveMemoryWarning Methode zur Behandlung von Speicherwarnungen.

func applicationDidReceiveMemoryWarning(_ application: UIApplication) {
    // 释放不必要的资源
}

View-Controller können auch überschrieben werden didReceiveMemoryWarning Methode zur Behandlung von Speicherwarnungen.

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // 释放不必要的资源
    imageCache.removeAllObjects()
}

Spezifischer Auslösewert für die Speicherwarnung

Obwohl iOS den spezifischen Auslösewert der Speicherwarnung nicht offenlegt, kann er durch Beobachtung der Speichernutzung verschiedener Geräte geschätzt werden:

  • Low-End-Geräte (wie iPhone 6 und 6s): Normalerweise wird eine Speicherwarnung ausgelöst, wenn die Speichernutzung nahe bei 500 MB liegt.
  • Mittelklassegeräte (wie iPhone 7 und 8): Eine Speicherwarnung kann ausgelöst werden, wenn sich die Speichernutzung 1 GB nähert.
  • High-End-Geräte (wie iPhone X und neuer): Eine Speicherwarnung kann ausgelöst werden, wenn die Speichernutzung 1,5 GB überschreitet.

Umgang mit Speicherwarnungen

  1. Geben Sie unnötige Ressourcen frei: Wenn Sie eine Speicherwarnung erhalten, geben Sie nicht mehr benötigten Speicher frei, z. B. zwischengespeicherte Bilder, temporäre Daten usw.
  2. Verzögertes Laden und verzögertes Laden: Ressourcen so weit wie möglich verzögern und verzögert laden, um die anfängliche Speichernutzung zu reduzieren.
  3. Optimieren Sie Datenstrukturen und Algorithmen: Wählen Sie geeignete Datenstrukturen und Optimierungsalgorithmen, um die Speichernutzung zu reduzieren.
  4. Verwenden des Instruments-Tools: Verwenden Sie regelmäßig das Instruments-Tool, um die Speichernutzung zu erkennen und zu analysieren, um Speicherlecks und übermäßige Speichernutzung zu identifizieren und zu beheben.

Durch die ordnungsgemäße Behandlung von Speicherwarnungen und die Optimierung der Speichernutzung können die Anwendungsleistung und -stabilität erheblich verbessert und Abstürze und Einfrierungen aufgrund von unzureichendem Speicher reduziert werden.


Wie viel Speicher ist für iOS-Apps sinnvoll?

Die angemessene Speichernutzung einer iOS-Anwendung hängt von vielen Faktoren ab, einschließlich der Hardwarekonfiguration des Geräts, der funktionalen Komplexität der Anwendung und der laufenden Umgebung.

1. Hardwarekonfiguration der Ausrüstung

  • Low-End-Geräte : Geräte mit weniger Speicher (1 GB oder weniger) reagieren empfindlich auf die Speichernutzung. Besonderes Augenmerk muss auf die Speicheroptimierung gelegt werden.
  • Mittelklassegerät: Bei Geräten mit mittlerem Speicher (2 GB bis 3 GB) können Anwendungen die Speichernutzung entsprechend erhöhen, sie muss jedoch dennoch in einem angemessenen Bereich kontrolliert werden.
  • High-End-Ausrüstung: Bei Geräten mit größerem Speicher (4 GB und mehr) können Anwendungen mehr Speicher beanspruchen, eine übermäßige Speichernutzung kann sich jedoch dennoch auf die Systemleistung auswirken.

2. Anwendungstypen und Funktionen

  • Einfache Anwendung: Beispielsweise versuchen Toolanwendungen, Newsreader usw. normalerweise, die Speichernutzung unter 100 MB zu halten.
  • Anwendungen mittlerer Komplexität: Bei Social-Media-Anwendungen, leichten Spielen usw. sollte die Speichernutzung zwischen 200 MB und 500 MB liegen.
  • Komplexe Anwendungen: Bei großen Spielen, grafikintensiven Anwendungen usw. kann die Speichernutzung 500 MB oder mehr erreichen, Sie sollten jedoch versuchen, 1 GB nicht zu überschreiten.

3. Überwachung der Speichernutzung

Verwenden Sie das Instruments-Tool von Xcode, um die Speichernutzung Ihrer App zu überwachen, einschließlich Zuweisungs- und Leaks-Vorlagen. Stellen Sie sicher, dass die Speichernutzung der Anwendung bei normaler Nutzung stabil ist und keine offensichtlichen Speicherlecks auftreten.

4. Verwenden Sie geeignete Speichernutzungsmetriken

4.1 Residenter Speicher

Residenter Speicher ist der tatsächlich von der Anwendung belegte physische Speicher, der über die Zuordnungsvorlage von Instruments überwacht werden kann.

4.2 Virtueller Speicher

Der virtuelle Speicher ist der Gesamtspeicher, auf den eine Anwendung zugreifen kann, einschließlich des Speicherauslagerungsbereichs. Die Nutzung des virtuellen Speichers ist in der Regel höher als die des residenten Speichers.

Zusammenfassung

Der geeignete Speicherbedarf hängt vom spezifischen Anwendungstyp, der Funktionskomplexität und dem Zielgerät ab. Im Allgemeinen sollten Sie versuchen, die Speichernutzung in einem angemessenen Bereich zu halten und zu vermeiden, dass die Grenze des verfügbaren Speichers des Geräts überschritten wird. Durch Speicheroptimierungspraktiken, die Verwendung geeigneter Datenstrukturen, die Optimierung der Bildverarbeitung und der Codeleistung können Sie die Speichernutzung effektiv reduzieren und die Anwendungsleistung und -stabilität verbessern. Verwenden Sie regelmäßig das Instruments-Tool, um die Speichernutzung zu überwachen und zu analysieren, um sicherzustellen, dass die Speichernutzung der Anwendung in verschiedenen Szenarien angemessen ist.