ios app maximales Speicherbudget
Arbeite ich an einer ios-Spiel, der auf mindestens das 3gs. Wir sind mit HD-Elemente für retina-display-Geräte (iphone 4, ipod touch 4. gen).
Speicher-Weise, Ipod Touch 4th gen scheint die meisten constraint-Gerät für uns, denn es hat die gleiche Menge RAM (256 im Vergleich zu Iphone 4 s 512) als 3gs aber wir sind mit der HD-assets auf. Die app zum Absturz bringen, wenn Sie versuchen zu laden, 100-110mb ram, aber jetzt, wir sind unten, um 70MB, wir hatten noch nie laden Absturz.
Nach viel Sucherei, scheint es keine offizielle hard limit so, wie sollten wir Vorgehen, um zu wissen, was Speicher-budget zu verwenden, um sicher zu sein? Wir wollen in der Lage zu geben, die Künstler, ein budget, das Sie verwenden können, ohne Arbeitsspeicher sorgen für jede Karte.
InformationsquelleAutor der Frage frilla | 2011-05-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, Sie haben Ihre eigene Frage beantwortet: versuchen Sie, nicht zu gehen über die 70 Mb Grenze, aber es wirklich hängt von vielen Dingen ab: welche iOS-version Sie verwenden (nicht SDK), wie viele Anwendungen im hintergrund ausgeführt wird, was genau den Speicher, die Sie verwenden etc.
Nur vermeiden Sie die instant memory-Spritzer (z.B. bist du mit 40 Mb RAM, und dann die Zuteilung 80 Mb mehr für einige kurze Berechnung). In diesem Fall iOS töten würde Ihrer Anwendung sofort.
Sollten Sie auch überlegen, lazy loading von Objekten (laden Sie nur, wenn Sie wirklich brauchen, und nicht vorher).
InformationsquelleAutor der Antwort Max
Ergebnisse der Prüfung mit dem Dienstprogramm Split schrieb (link wird in seiner Antwort):
Gerät: (Absturz Betrag/Summe/Anteil an Gesamt)
InformationsquelleAutor der Antwort Jasper
Erstellte ich kleine Dienstprogramm, das versucht, zu reservieren, so viel wie möglich Speicher zu Abstürzen und es zeichnet auf, wenn Speicher Warnungen und crash passierte. Dies hilft, um herauszufinden, was das Speicher-budget für jede iOS-Gerät.
https://github.com/Split82/iOSMemoryBudgetTest
InformationsquelleAutor der Antwort Split
In meiner app, user experience ist besser, wenn mehr Speicher verwendet wird, so muss ich entscheiden, ob ich wirklich frei alle den Speicher kann ich in
didReceiveMemoryWarning
. Basierend auf Split-und Jasper-Pol s Antwort, mit einem maximum von 45% der gesamten Gerätespeicher erscheint, um eine sichere Schwelle (danke Jungs).Den Fall, dass jemand will sich an meinen tatsächlichen Umsetzung:
Swift (basierend auf diese Antwort):
InformationsquelleAutor der Antwort cprcrack
Sollten Sie Uhr Sitzung 147 aus der WWDC 2010 Session-videos. Es ist "Advanced Performance Optimization on iPhone OS, Teil 2".
Es gibt eine Menge guter Ratschläge auf Speicher-Optimierungen.
Einige der Tipps sind:
NSAutoReleasePool
s um sicherzustellen, dass Ihre Speichernutzung nicht spike.CGImageSource
beim erstellen von thumbnails von großen Bildern.InformationsquelleAutor der Antwort Kobski
Durch Gabelung TEILT repo, baute ich ein um zu testen, iOS-Speicher, die zugewiesen werden können, um die Heutigen Erweiterung
iOSMemoryBudgetTestForExtension
Folgenden ist das Ergebnis, dass ich in iPhone 5s
Speicher Warnung bei 10 MB
App Stürzte bei 12 MB
Dieses bedeutet, dass Apple ist nur so dass alle Erweiterungen funktionieren mit Ihrem vollen Potenzial.
InformationsquelleAutor der Antwort Harsh
Wenn man so will, nutzen TASK_BASIC_INFO_COUNT statt MACH_TASK_BASIC_INFO, erhalten Sie
kerr == KERN_INVALID_ARGUMENT (4)
InformationsquelleAutor der Antwort Dmitry Preobrazhenskiy
Ich eine weitere Liste durch die Sortierung Jaspers Liste von Geräte-RAM (ich habe meine eigenen tests mit Split-Werkzeug und reparierte einige Ergebnisse - überprüfen Sie meine Kommentare in diesem thread).
Gerät RAM: Prozent-Bereich zum Absturz
Sonderfall:
Gerät RAM leicht gelesen werden können:
Aus meiner Erfahrung ist es sicher zu verwenden, 45% für 1GB Geräte, 50% für 2/3GB-Geräte und 55% für die 4GB-Geräte. Prozent für macOS kann ein bisschen größer.
InformationsquelleAutor der Antwort Slyv