Warum ist es für einen iPhone-Akku besser, Apps NICHT zu schließen?

51

Ich weiß, dass es anscheinend keine gute Idee ist, Apps auf Ihrem iPhone zu schließen, um Batterie zu sparen. Ich habe Fragen und Antworten wie " Hat das erzwingen des Schließens von Apps auf iOS-Geräten Vorteile?" Gelesen . aber es passt immer noch nicht zu mir. Manchmal habe ich festgestellt, dass über 50 Apps ausgeführt werden. Daher macht es keinen Sinn , sie nicht zu schließen.

Vielleicht bin ich ein bisschen alt und man kann alten Hunden einfach keine neuen Tricks beibringen, aber kann hier jemand erklären, warum es besser ist, all diese Apps am Laufen zu halten? Und wenn ich "erklären" sage, meine ich in Laienbegriffen, damit ich verstehen kann.

FC
quelle
31
Das Missverständnis ist der „laufende“ Teil. Apps im Switcher werden nicht notwendigerweise ausgeführt, die meisten davon jedoch nicht.
Stellen
3
Wie bei patrix möchte ich hinzufügen, dass iOS Apps von selbst schließt, wenn der Speicher knapp wird. Auch wenn es so aussieht, als würden 50 Apps "ausgeführt", haben die anderen 49 eine große Chance, wenn Sie sich ein Video ansehen wurde nach 2/3 Minuten beendet. Der App-Umschalter zeigt zu diesem Zeitpunkt nur eine aktuelle Bildschirmaufnahme dieser Apps an.
Codierter Affe
5
@CodedMonkey Ich stimme Ihrem Kommentar größtenteils zu, allerdings würde ich klarstellen, dass die anderen 49 nicht gekündigt würden, sondern suspendiert würden. Der Unterschied besteht darin, dass eine App, wenn sie beendet wird, nicht mehr im Arbeitsspeicher gespeichert ist. Wenn sie angehalten wird, ist sie weder auf dem Bildschirm sichtbar noch führt sie Code aus. In diesem Zustand werden weder Prozessor noch Akku verwendet, es befindet sich jedoch noch im Arbeitsspeicher. Unter Verwendung Ihres Beispiels würde ich jedoch davon ausgehen, dass iOS möglicherweise einige der anderen 49 Apps beendet, die meisten jedoch in einem angehaltenen Zustand hält.
Monomeeth
8
Wir müssen uns wahrscheinlich an den Elefanten im Raum wenden - was bedeutet, dass Sie sagen, dass "nur all diese Apps laufen lassen" - und was bedeutet "Apps schließen" - iOS 11 führt maximal drei Apps aus und einige Apps werden regelmäßig im Hintergrund aktiviert (beabsichtigt) ), wenn wir über das Betriebssystem in groben Zügen / Laienbegriffen sprechen. Wenn dies dazu gedacht ist, die Debatte darüber, ob die gespeicherten Miniaturbilder von App-Bildern von der Multitasking-Benutzeroberfläche entfernt werden sollen, auszulassen, lassen Sie uns dies in der Frage klarstellen.
bmike
3
Ich erschrecke meine Freunde wirklich, indem ich (gerade) 314 Tans I Safari und 57 Apps "offen" habe.
Tim

Antworten:

64

Du bist nicht allein. Die Menschen sind nur an ihre Desktop-Computergewohnheiten gewöhnt, und es ist verständlich, dass sie diese Gewohnheiten auf ihre iPhones und iPads übertragen.

Lassen Sie mich dies jedoch anhand einer Analogie erklären:

Stellen Sie sich vor, es ist ein heißer Tag und Sie arbeiten draußen im Garten. Du wirst durstig, also gehst du in die Küche, nimmst ein großes Glas, gibst etwas Eis hinein und füllst es mit Wasser. Sie trinken dann die Hälfte davon und leeren den Rest in der Spüle, bevor Sie wieder nach draußen gehen. Kurz darauf wird man wieder durstig, also geht man zurück in die Küche, schnappt sich dasselbe Glas, füllt es mit Eis und füllt es mit Wasser. Wieder trinkst du nur die Hälfte davon und leerst den Rest in der Spüle!

Der obige Workflow macht einfach keinen Sinn. Warum würdest du das Glas nicht mit nach draußen nehmen? Und Sie verschwenden nicht nur Wasser, indem Sie es leeren, sondern Sie verbringen mehr Zeit und Energie damit, dieses Wasser wieder zu beschaffen.

Ebenso verbrauchen Sie beim Beenden einer App tatsächlich etwas Batteriestrom (z. B. Löschen aus dem RAM usw.) und später erneut, wenn Sie sie erneut starten und wieder in den RAM laden müssen.

Daher ist es die meiste Zeit am besten, Apps offen zu lassen. Obwohl sie offen sind, sitzen sie wirklich nur in einer Art Suspended-Modus, der keinerlei Batteriestrom verbraucht. Ja, die App ist immer noch im RAM geladen und nimmt Speicherplatz ein , aber sie macht eigentlich nichts - sie liegt nur schlafend da. Und da in diesem Zustand kein Akku verbraucht wird, hat das Beenden keinen Vorteil. Dies gilt insbesondere dann, wenn Sie wissen, dass Sie die App den ganzen Tag über immer wieder verwenden werden.

Es ist auch wirklich nicht vorteilhaft, das Beenden einer App zu erzwingen, da iOS dies für Sie erledigt, wenn dies erforderlich ist, um RAM freizugeben. Wenn Sie also 50 Apps geöffnet haben und diese geöffnet bleiben, wurde iOS nicht so weit gedrängt, dass Sie eines davon schließen müssen, um Speicherplatz freizugeben.

Nun gibt es wie immer Ausnahmen von der Regel (z. B. Apps, die Hintergrundaufgaben ausführen müssen). Ein Beispiel hierfür ist das Abspielen von Musik, während Sie mit Ihrem Telefon andere Dinge erledigen, oder das Herunterladen von Inhalten im Hintergrund oder das Zählen der Anzahl der Schritte, die Sie an einem Tag ausführen usw. iOS hat jedoch ein extremes Problem Effizienter Prozess für das Verwalten von Hintergrund-Apps / -Aufgaben. Wenn Sie diese beenden, sagen Sie im Grunde, dass Sie dem Betriebssystem nicht vertrauen, dass es seine Aufgabe ordnungsgemäß erledigt.

Sie können Ihre Apps also jederzeit beenden (z. B. weil sie eingefroren sind usw.), tun dies jedoch nicht, um den Akku zu schonen. In der Tat, wenn Sie dies tun, erreichen Sie das Gegenteil und verbrauchen mehr Batterieleistung im Laufe des Tages!

Zusammenfassung

  • Sie müssen Apps nur beenden, wenn sie nicht ordnungsgemäß funktionieren (z. B. eine App ist eingefroren, wird nicht ordnungsgemäß angezeigt usw.).
  • Apps, die im App Switcher aufgeführt sind, werden nicht unbedingt ausgeführt - die meisten von ihnen werden sogar überhaupt nicht ausgeführt .
  • Die meisten Apps im App Switcher sind in einem angehaltenen Zustand. Dies bedeutet, dass sie nicht auf dem Bildschirm angezeigt werden, Code ausführen, die CPU oder GPU verwenden oder den Akku verwenden. Sie befinden sich jedoch noch im Arbeitsspeicher, bis sie (falls erforderlich) vom System gelöscht werden, um Speicher freizugeben:

    Angehalten - Die App befindet sich im Hintergrund, führt jedoch keinen Code aus. Das System verschiebt Apps automatisch in diesen Status und benachrichtigt sie vorher nicht. Während der Unterbrechung bleibt eine App im Speicher, führt jedoch keinen Code aus. Wenn ein Zustand mit wenig Arbeitsspeicher auftritt, löscht das System möglicherweise angehaltene Apps, ohne dass dies bemerkt wird, um mehr Platz für die Vordergrund-App zu schaffen.

    Quelle : Siehe Tabelle 2-3 im ersten Verweis am Ende dieser Antwort.

  • Die einzigen Apps, die zu einem bestimmten Zeitpunkt auf Ihrem iPhone ausgeführt werden, sind die aktive App (dh die auf dem Bildschirm sichtbare) und alle anderen Apps, die im Hintergrund ausgeführt werden . ( Hinweis: Es gibt einige vorübergehende Ausnahmen in Bezug auf Apps, die noch Zeit benötigen, um den Code auszuführen, den sie bereits gestartet haben, während sie aktiv waren. Dies liegt normalerweise nur in der Größenordnung von Sekunden, kann sich aber theoretisch auf über eine Minute erstrecken.) .

  • In Bezug auf Apps, die im Hintergrund ausgeführt werden, können Sie steuern, welche Apps dazu berechtigt sind (sofern sie geöffnet sind), indem Sie auf Einstellungen> Allgemein> App-Aktualisierung im Hintergrund klicken. ( Hinweis: Nur weil Sie eine hier aufgeführte App sehen, heißt das noch lange nicht, dass sie im Hintergrund ausgeführt wird. Wenn Sie sie jedoch hier deaktivieren, ist dies definitiv nicht der Fall!)
  • Wenn Ihr iPhone gesperrt ist, ist die App, die beim Sperren Ihres Geräts aktiv war (dh auf dem Bildschirm angezeigt wurde), jetzt inaktiv . Es sei denn, Sie haben Ihr iPhone gerade erst gesperrt und die Ausführung des Codes ist noch nicht abgeschlossen oder es läuft im Hintergrund (z. B. beim Abspielen von Musik usw.), wird die CPU, die GPU oder der Akku nicht verwendet.

Verweise

  1. Weitere Informationen zu den verschiedenen Status einer App finden Sie im Apple App Programming Guide für iOS: Ausführungsstatus für Apps .
  2. Weitere Informationen zu Apps, die im Hintergrund ausgeführt werden, finden Sie im Apple App Programming Guide für iOS: Background Execution .
Monomeeth
quelle
9
Wenn Sie also 50 Apps geöffnet haben und diese geöffnet bleiben, muss iOS keines davon schließen, um Speicherplatz freizugeben. Um genau zu sein, können Sie nicht feststellen, ob die Apps in der App geöffnet sind Switcher sind wirklich offen (dh im Speicher vorhanden) oder nicht.
MJeffryes
24
Wenn der Akku leer ist , wird die App erneut gestartet . Eine App auszusetzen ist billig. Eine gesperrte App wieder aufzunehmen ist billig. Das vollständige Laden der App von Grund auf erfordert jedoch eine Menge Ressourcen (auch wenn einige noch zwischengespeichert sind): Das Betriebssystem muss die App und alle abhängigen Frameworks laden, der vollständige Startcode der App muss erneut ausgeführt werden, usw .
DarkDust
5
Ich hatte immer gedacht, dass der Switcher alle Apps auflistet, die jemals auf dem Telefon bis zu einer bestimmten Höchstgrenze geöffnet wurden, und zwar in der Reihenfolge, in der sie zuletzt verwendet wurden, unabhängig davon, ob sie sich im Speicher befanden oder nicht. Wenn ich weit genug zurückblättere, führt der Wechsel zu einer App zu einer längeren Pause, da die App (nehme ich an) von der Festplatte geladen wird. Gibt es eine Dokumentation, die Ihre Sicht auf sein Verhalten bestätigt?
MJeffryes
7
Dies ist eine nützliche Antwort, aber es gibt keine Möglichkeit, dass iOS 50 Apps alle ausgesetzt lässt, es sei denn, jede von ihnen hat einen wirklich mikroskopischen Speicherbedarf. Ich wechsle den ganzen Tag zwischen großen Apps (Safari, Twitter, Facebook, Reddit, YouTube usw.) und bekomme oft ein "vollständiges Nachladen", bei dem ich auf eine App zurückschalte, die nur zwei oder drei Karten in der zuletzt verwendeten Liste enthält.
BradC
3
@Monomeeth Im App-Switcher befinden sich viele Apps, die effektiv beendet werden - dh ein vollständiges Neuladen ist erforderlich, um den Vorgang fortzusetzen. Ich glaube, iOS wird nicht vollständig beendet, es sei denn, es ist abgestürzt - es verbleibt nur im App-Switcher, ist nicht im Arbeitsspeicher gespeichert und bietet mehr oder weniger die Möglichkeit, schneller darauf zuzugreifen.
Joe
22

Die angegebenen Antworten sind richtig, ich möchte nur aus der Sicht eines iOS-Entwicklers klären.

iOS ist darauf ausgelegt, so viele Dinge wie möglich zu verwalten, damit Sie (und Entwickler) sich nicht darum kümmern müssen. Das Endergebnis ist ein etwas einheitlichen Ansatzes für Anwendungen, einschließlich derjenigen von Apple (auch tho manchmal Apple selbst schneidet einige Ecken).

Davon abgesehen lautet die Prämisse:

  • iOS weiß mehr über Speicher als wir. Es weiß, wie viel es hat und wie viel es braucht (bis zu einem gewissen Grad).
  • iOS hat die volle Kontrolle über den Speicher; Es gibt das letzte Wort darüber, wer was verwendet.
  • Wenn iOS Speicher benötigt, wird es diesen finden und dies geschieht normalerweise, indem andere Prozesse beendet werden, die seit einiger Zeit inaktiv sind (und es gibt viele Regeln hinter den Kulissen, die wir nicht alle kennen und auch nicht wirklich sich um sie sorgen).
  • Alles, was ein Prozessor (CPU) tut, kostet Energie. Absolut alles. Vergessen Sie nicht, dass Computer nur sehr kleine Elektronenbehälter sind, die sie in sehr kleinen Räumen bewegen.
  • Wenn eine App beendet wird, gibt es einige vereinbarte Protokolle (Verträge), die definieren, was zu tun ist. iOS erzwingt und führt diese Protokolle. Aber es muss gearbeitet werden, es ist nicht kostenlos und sicherlich nicht immer billig (es kommt wirklich darauf an, was die App ist).

Abgesehen davon geht man davon aus, dass die meisten Benutzer Apps schließen, in der Hoffnung, die Akkulaufzeit zu verlängern, und den Eindruck haben, dass durch das Schließen weniger Energie für die Aufrechterhaltung des Betriebs dieser Apps verschwendet wird.

Die Wahrheit ist, dass dies unter iOS so gut wie nie der Fall ist. Wenn Sie die Home-Taste drücken, wird die App angehalten und verwendet keine Ressourcen mehr, die andere Apps möglicherweise benötigen. Wenn eine neue App (oder sogar iOS) diesen Speicher benötigt, kümmert sie sich selbst darum, aber nur, wenn dies erforderlich ist.

Wenn Sie die Apps immer wieder schließen, wird iOS gezwungen, die möglicherweise teure Aufgabe zu übernehmen, eine App wirklich zu entladen, ihren Status zu speichern und was nicht, mit dem zusätzlichen Problem, dass all diese Dinge zurückgesetzt werden müssen, wenn Sie die App erneut öffnen Abhängig von der Komplexität der App müssen viele Daten aus dem Speicher in den Hauptspeicher des Telefons eingelesen werden. All diese zusätzliche Arbeit hätte vermieden werden können, wenn Sie die App einfach in ihrem "angehaltenen" Zustand belassen hätten.

Wie auch immer ...

In einigen Fällen (und sie sind selten, aber nicht unmöglich selten) möchten Sie Apps töten, die sich schlecht verhalten. Beispiele sind (aber nicht beschränkt auf): Apps, die sich mit Hintergrundaudio befassen, oder asynchrone Dienste wie Standort (bei denen die App nach einem Standort fragt und iOS nach dem Standort fragen muss, z. B. indem es bei Bedarf das GPS abfeuert) , Video-Streaming usw.

Ich hatte unzählige Instanzen von Apps wie Lyft, United Airlines und sogar Twitter, die kaputt gingen (oder einfach nicht richtig funktionierten), weil Sie sich in einem schlechten Netzwerk befanden (iOS ist wirklich schlecht geworden) Wiederherstellung nach einigen fehlerhaften Netzwerken in den letzten 3-4 Releases) oder das Netzwerk reagiert einfach nicht richtig.

Mit der Zeit verschwinden die meisten dieser Probleme und die App funktioniert wieder. Aber wenn Sie die App wirklich brauchen, um jetzt zu funktionieren , müssen Sie den Preis dafür bezahlen, sie zu töten und neu zu starten. Sie haben dadurch mehr Batterie verbraucht, aber hey, Sie haben sie gebraucht.

Und wenn das verwirrend war, kann ich Ihnen eine Auto-Analogie geben, denn das ist es, was wir die ganze Zeit tun.

Die Auto-Analogie

Ich weiß, dass die Autotechnik Fortschritte gemacht hat und dies kein gutes Beispiel mehr ist, aber spielen Sie hier mit mir .

Wenn man den Motor eines Autos zündet, verbraucht man früher mehr Kraftstoff als nur im Leerlauf. Wenn Autos Vergaser anstelle von Einspritzdüsen hatten, war dies noch schlimmer. Aus diesem Grund können Sie den Motor abstellen, wenn Sie an einer roten Ampel stehen und theoretisch mehr Kraftstoff verbrauchen als nur eine Minute im Leerlauf. Neuere Autos haben einen viel effizienteren Mechanismus und können den Motor abstellen, bleiben aber in einem halb angelassenen Zustand (lassen Sie uns hier nicht zu sehr auf Autos eingehen).

Wenn Sie Apps schließen, entspricht dies einer Person, die das Auto an jeder Ampel ausschaltet. Im Gegensatz dazu lassen Sie es einfach im Leerlauf, bis Sie es wieder benötigen, normalerweise einige Sekunden später.

Die Analogie ist nicht perfekt, denn in Wahrheit verbrauchen leere Autos immer noch Kraftstoff, während suspendierte Apps dies nicht tun. In den Augen des Telefons wird jedoch nichts im Zusammenhang mit Speicher / Akku verwendet (vorausgesetzt, es ist offensichtlich, dass keine Hintergrundverarbeitung aktiv ist).

Grundsätzlich schalten Sie den Motor jedes Mal aus, wenn Sie eine App beenden, und Sie lassen nicht zu, dass der „intelligente“ Mechanismus “des Leerlaufs Ihres Motors für iOS sorgt. Wenn die LED grün leuchtet, können Sie einfach auf das Gaspedal und drücken Der Motor läuft schneller als wenn er zu 100% gestoppt worden wäre. Wenn Sie einen Motor aus dem Stand starten und dabei mehr Leistung als nur Kraftstoff verbrauchen, müssen Sie den Anlasser drehen, damit der Motor angelassen, Kraftstoff eingespritzt und Funken erzeugt werden können. Es ist also eine Menge Arbeit hinter den Kulissen. Apps sind wie Motoren. :)

Martin Marconcini
quelle
1
Haha, ich mag die Analogie (und Ihre Antwort). :)
Monomeeth
Frage zu Ihrem Kommentar zu Apps, die sich schlecht benehmen: "[...] Wenn Sie die App wirklich brauchen, um jetzt zu funktionieren, müssen Sie den Preis dafür bezahlen, sie töten und neu starten zu müssen. Sie haben mehr Akku verwendet auf diese Weise [...] "Glauben Sie, dass dies allgemein verschwenderischer ist? Obwohl ich Apps ansonsten nicht beende, gehe ich häufig davon aus, dass eine nicht funktionierende oder auf andere Weise gestörte App wahrscheinlich eine Menge Ressourcen verbraucht, indem sie wiederholt versucht und versäumt, das zu tun, was sie will. Ich sehe, dass dies weniger intensiv sein könnte, als von vorne anzufangen. Glauben Sie, dass dies im Allgemeinen der Fall ist?
Brhfl
1
@brhfl Es ist schwer zu sagen, dass jede App eine andere Welt ist. Es gibt deutliche Anzeichen dafür, dass etwas nicht stimmt. Wenn Ihr Telefon in kurzer Zeit sehr heiß wird, während Sie nur versuchen, eine App zu verwenden, kann dies bedeuten, dass die CPU verwendet wird, oder wenn sich das Telefon träge anfühlt (Animationen überspringen beispielsweise Frames). Das sind gute Anzeichen dafür, dass etwas mehr Ressourcen verbraucht, als es sollte, und in diesen Fällen ist es der richtige Weg, die verdächtige App zu töten. Im Allgemeinen hat eine App keine andere Wahl, als sich zu verhalten, wenn sie angehalten wird (Hintergrund), auch wenn sie nicht gut läuft. oder das Risiko, von iOS getötet zu werden.
Martin Marconcini
1
  1. Wenn Sie das vollständige Herunterfahren einer App erzwingen und sie zu einem späteren Zeitpunkt erneut öffnen müssen, ist der mit dem Starten einer neuen Instanz der App verbundene Overhead CPU- und energieintensiver als das bloße Wechseln von einer App zu einer anderen.
  2. Wenn sich eine App nur im Arbeitsspeicher befindet, wird sie normalerweise angehalten oder beendet und verbraucht (normalerweise) keinen CPU-Zyklus. Wenn es sich um eine relativ einfache App handelt, sitzt sie nur mit Speicherplatz da. In diesem Fall bleibt der App-Status an einer anderen Stelle erhalten (auf dem Gerätespeicher bei Android), sodass der App-Status später wiederhergestellt werden kann. Um Ihnen eine Idee zu geben, eine ziemlich lange, nicht gesendete Nachricht, die ich in der Viber-App auf meinem Telefon geschrieben habe, überlebte ein Herunterfahren des Telefons aufgrund eines leeren Akkus. Nachdem ich das Telefon und dann Viber neu gestartet hatte, fand ich die Nachricht, die darauf wartete, dass ich sie sendete. Halleluja.
  3. Je nachdem, ob Ihr Speicherchip Nullen oder Einsen enthält, ändert sich der Stromverbrauch nicht wesentlich. Wenn Sie also Dinge im Speicher von not aufbewahren, sparen Sie nicht wesentlich an Batterie.
  4. Wenn sich eine App im Super-Tiefschlaf befindet (Jungs, bitte bestätigen Sie dies), wird im App-Switcher nur ein Verweis darauf als Momentaufnahme des letzten Bildschirms angezeigt, der von dort aus sichtbar war, bevor Sie untergegangen sind. Ich sage das, weil ich eines Tages beschlossen habe, alle Apps auf meinem iPad zu schließen, und ich war überrascht, wie viele Apps ich schließen musste. Es waren mehr als 60 Apps. Diese können nicht alle im Speicher des iPad gespeichert werden. Ich habe dort einige Apps gesehen, die vor einigen Monaten benutzt wurden.

In Analogie zu Ihrem Auto: Wenn Sie tagsüber zu viele Stopps einlegen und den Motor immer wieder abstellen und starten müssen, wird die Batterie vollständig entladen sein. Dies kann passieren, wenn die Ladezeit zwischen den Stopps nicht ausreicht, um die enorme Energiemenge wiederherzustellen, die bei jedem Motorstart aus der Batterie gesaugt wird. Außerdem ist es nicht gut für den Starter und den Gesamtgasverbrauch. Aus diesem Grund lassen viele Lieferwagenfahrer den Motor während ihrer kurzen Pausen im Leerlauf laufen.

Diese Analogie ähnelt IMO dem Mythos der Speicherersparnis.

Abdoulaye Siby
quelle
-1

Wir werfen einfach eine abweichende Meinung da draußen, um darüber zu diskutieren. Dieses Konzept hat ein gewisses Maß an Wahrheit, aber sobald Sie eine bestimmte Anzahl von Apps geöffnet haben, werden Sie wahrscheinlich abnehmende Renditen feststellen, wenn Sie Apps aussetzen.

Je mehr Apps Sie geöffnet haben, desto mehr RAM wird sich offensichtlich verbrauchen. Normalerweise wird jede App im Speicher als Arbeitsspeicher aufgeteilt, den die App selbst aktuell verwendet, als Arbeitsspeicher, den die App zur Verfügung haben möchte, und als Arbeitsspeicher, den das Betriebssystem der App tatsächlich zur Verfügung gestellt hat, wodurch Sie die endgültige Menge an Arbeitsspeicher für die App erhalten darf verwenden. Der Grund, warum die App einen separaten Teil dieses Speichers als Speicher verwendet, den sie verwenden möchte, ist, dass die App möglicherweise ihren Haufen vergrößern muss, dies jedoch nicht unbedingt von Anfang an tun möchte, da dies für die Garbage Collectors schädlich ist Haben Sie große Heaps (große Heaps = längere Garbage Collections), so wird die App einen Teil des Arbeitsspeichers beiseite legen, der derzeit nicht verwendet wird. Dieser Teil kann jedoch von der App ausschließlich verwendet werden, wenn dies erforderlich ist.

Angenommen, das Betriebssystem lässt meiner App bis zu 700 MB zu, und die App stellt 300 MB dieses Speichers für sich selbst zur Verfügung, sodass 400 MB für meine App zur Verfügung stehen, wenn sie dies wünscht. Dann öffnet sich jedoch eine andere App und benötigt Speicher. Das Betriebssystem überprüft alle verschiedenen Apps und entscheidet, ob es in Ordnung ist, Speicher aus einer anderen App zu ziehen und für die neue App zu verwenden. In diesem Fall kann es entscheiden, 150 MB aus dem für meine Apps zulässigen Speicher zu entnehmen und der neuen App zu geben Je mehr Apps Sie geöffnet haben, desto mehr Arbeit muss das Betriebssystem leisten, um tatsächlich zu entscheiden Welchen App-Speicher kann es entleeren, um den neuen App-Speicher freizugeben?

In diesem Sinne erhöht jede App, die geöffnet und angehalten wird, die Komplexität dieses Prozesses, wodurch die CPU-Belastung zunimmt und möglicherweise mehr Batteriestrom zum Öffnen zukünftiger Apps benötigt wird, als der durch das Nichtschließen anderer Apps eingesparte Batteriestrom.

Wenn Sie eine App nicht wirklich beenden, werden möglicherweise Hintergrunddienste ausgeführt, die die Verarbeitungsleistung beeinträchtigen, z. B. Benachrichtigungen, die Sie über einen Timer benachrichtigen sollen usw. Auf der anderen Seite einige Apps verwenden keinen echten Hintergrunddienst und tatsächlich Push-Benachrichtigungen von Diensten wie Firebase, bei denen die App zu keinem Zeitpunkt geöffnet sein muss.

Je mehr Apps Sie kontinuierlich öffnen, desto fragmentierter ist der Speicher zunächst, bis das Betriebssystem den Speicher durchläuft und bereinigt, um ihn sauberer und effizienter zu gestalten Je mehr Speicher von Apps belegt wird, desto intensiver ist dieser Vorgang für Ihr Gerät.

Das heißt, Apps offen zu lassen ist meist effizienter, es sei denn, es werden zu viele Apps geöffnet. Ich bin mir jedoch nicht sicher, wie viele Apps geöffnet sein müssen, um diese Schwelle zu erreichen, wenn die Anzahl vorhanden ist.

Quellen:

SGen Garbage Collector für Mono: http://www.mono-project.com/docs/advanced/garbage-collector/sgen/

Übersicht über den Speicherprofiler für iOS- und Android-Xamarin-Apps, der die Art und Weise anzeigt, wie der Speicher von der App verwaltet wird (Arbeitssatz, private Bytes, zugewiesener Speicher usw.) https://blog.xamarin.com/say-hello-to -der-xamarin-profiler /

Trevor Hart
quelle
1
Ich bin mir nicht sicher, ob dies richtig ist. Sind Sie ein iOS-Entwickler? Ich glaube, dass iOS nach eigenem Ermessen gesperrte Apps nach Bedarf löschen kann, um Speicher freizugeben , aber ich bezweifle stark, dass dies den Speicherbedarf einer gesperrten App teilweise verringern kann . Zumindest als Benutzer scheint es alles oder nichts zu sein.
BradC
2
Dies gilt für "vollständige" Betriebssysteme, die gleichzeitig Multitasking für vollständig ausgeführte Apps ausführen. Dies ist bei iOS nicht der Fall (außer bei neueren Konfigurationen mit geteiltem Bildschirm). Ich sage nicht , ich bin positiv , Sie sind falsch, ich bin deine Instinkte nur sagen , von anderen OS hier nicht gelten.
BradC
1
Und IMHO verwechseln Sie den App Switcher mit einer Liste von „open“ / „in memory“ Apps. Dies ist eindeutig nicht der Fall, so dass der Speicherbedarf für ein iPhone mit 5 oder 20 Apps im Switcher
durchaus gleich sein kann
2
Die Speicherverwaltung des Mono / Xamarin-Frameworks ist nicht repräsentativ für die Funktionsweise nativer Apps / Dienste auf der iOS-Plattform. iOS und die Objective-C / Swift-Laufzeitumgebung implementieren keine Garbage Collection.
Mike Mertsock
2
@ Trevorhart verwendet es automatische Referenzzählung developer.apple.com/library/content/documentation/Swift/…
Mateusz Szlosek
-2

Clean Cut-Version: Es ist besser, weil das Betriebssystem so konzipiert wurde, dass es besser ist, bis der Benutzer möchte, dass Apps aktiviert bleiben (oder in einem "angehaltenen" Zustand sind), um später mehr Informationen zu Ihren Aktionen zu erhalten [*] wenn benötigt.

Längere Version: Apps, die "suspendiert" sind, haben ihren Status im Speicher gespeichert. Wenn Sie sie also einmal starten möchten, benötigen die Prozesse zum Zurückladen weniger Zeit für den Prozessor und fast keine Verwendung der Speichereinheit ... Mit das können Sie nicht wissen, ob Ihre Apps noch andere Dinge im Hintergrund tun, die in vielen Fällen dort liegen und Daten über Sie sammeln.


[*] Um das Sammeln von Daten zu erläutern, können Apps, die im Speicher gespeichert sind, entweder "angehalten" oder im Hintergrund aktiv sein. Sie als Besitzer des Geräts können nicht wissen (wenn Sie nicht über das Wissen und einige andere Apps verfügen, um die CPU-Auslastung aktiv zu scannen), was die App wirklich tut. Aus Sicherheitsgründen würde ich empfehlen, alle Apps zu schließen, die Sie in den nächsten 10 Minuten nicht verwenden werden.

PS: Diese Übung wird auch auf Android-Geräten durchgeführt.

Kaotis
quelle
6
-1 Diese Antwort wäre besser, wenn sie nicht den Unterton "Ihr Telefon ist dafür ausgelegt, Sie auszuspionieren" hätte.
Nzall
4
"Ihr Telefon ist dafür ausgelegt, Sie auszuspionieren" gilt nicht wirklich für Apple-Geräte - sie verdienen kein Geld mit persönlichen Daten.
wizzwizz4
1
@ wizzwizz4 Sagt wer?
Du
1
@yo 'Sagt meine Unfähigkeit, Beweise zu finden, die darauf hindeuten, dass sie es tun. Nehmen wir guten Glauben an und das alles.
wizzwizz4