• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Ueble Memory-Leaks durch Safari

gregor

Reinette de Champagne
Registriert
14.10.08
Beiträge
421
Hallo zusammen,

frage mich, ob das jemand von Euch bestaetigen kann:

- 3G 16G
- OS 3.0
- Jailbreak

Ich habe u.a. SBSettings installiert und dort den Toggle "Processes". Ebenfalls lasse ich mir in der oberen Leiste das verfuegbare Memory anzeigen.

Ich stelle sehr haeufig fest, dass, wenn ich im Safari war und diesen geschlossen habe, das noch verfuegbare Memory teilweise auf 4MB (!) runtergeht, obwohl keine Apps mehr offen sind.

Es macht sich u.a. dadurch bemerkbar, dass sich das iPhone dann nursehr zaeh bedienen laesst (Reaktion auf Home-Button stark verzoegert, Text-Eingabe teilweise stark verzoegert).

Ich habe mir dann mal angeschaut, welche Prozesse so laufen, und habe festgestellt, dass Safari, obwohl von mir geschlossen, immer noch im Hintergrund laeuft.
Schiesse ich den Prozess hab, habe ich meistens sofort 42MB frei, und alles funktioniert wieder wunderbar.

Fragt sich, ob das ein Bug oder ein Feature ist - um z.B. die Ladezeiten von Safari zu minimieren - aber dann ist das Feature wirklich ein sehr schlechtes, da Safari einfach zu viel Memory beinhaltet.

Ich habe das iPhone auch schon mehrfach neu installiert - Verhalten ist immer das gleiche.

Leider kann ich ohne Jailbreak nicht testen, ob sich Safari ohne Jailbreak genau so verhaelt.

Meine Frage an Euch:

Kann dieses Verhalten hier evtl. jemand bestaetigen? Ist das von Apple evtl. sogar gewollt (Minimierung Ladezeiten) oder einfach nur schlampig programmiert?

Bin mal auf Eure Meinungen gespannt...

Gruss

Gregor
 

Creep89

Luxemburger Triumph
Registriert
28.06.08
Beiträge
499
Nö, dat is vollkommen normal. Mit dem einfachen Drücken auf den Homebutton springt Safari einfach nur in den Hintergrund, genau so wie Mail. Öffnest du jetzt ein anderes Programm, so sollte das OS normalerweise den RAM freimachen.
 

gregor

Reinette de Champagne
Registriert
14.10.08
Beiträge
421
Das ist leider nicht richtig, was Du schreibst.

Beispiel:

- freies memory 42MB
- offene Prozesse Mail 6 Telefon
- Nun wird Safari geoeffnet - freies Memory geht auf 8 MB zurueck
- Safari wird geschlossen - immer noch 8 MB freies memory
- nun wird eine beliebige andere App geoeffnet (z.B. Cydia): Freies memory geht runter auf 4MB

Fuehre ich die o.a. Schritte ohne Aufruf von Safari durch, habe ich by Cydia 16MB freies Memory

Daraus ergibt sich fuer mich klar, dass Safari das Memory def. nicht frei gibt.

Das gleiche uebrigens bei iPod - wobei ich es hier ja noch verstehen kann, dass der Prozess im Hintergrund weiterlaeuft. Aber auch das haette Apple intelligenter loesen koennen. Der grund duerfte wohl sein, dass iPod sich "merkt", welches Lied zuletzt lief - jier haette man die Info aber auch einfach in ein File schreiben und das - sofern vorhanden - beim Neustart auslesen koennen.

Was auch aufaellt:

- ich starte Cydia - freies Memory vor Aufruf 42MB
- freies Memory waehrend ich in Cydia bin: 16MB
- ich schliesse Cydia: Freies Memory nur noch 30MB
- nach Aufruf der SBSettings-Processe-sFunktion "Free Memory" wieder 42MB

Das ganze riecht fuer mich ziemlich nach uebelstem memory-Leaking - stellt sich nur die Frage, ob es ein OS-seitiges Problem ist oder die Apps unsauber programmiert sind - ich vermute mal ersteres.

Gibt's unter iPhoneOS eigentlich so etwas wie einen Garbage-Collector?

Gruss

Gregor
 

X3r0X

Cox Orange
Registriert
09.06.09
Beiträge
99
Warum sollte Safari was freigeben wenn Cydia nicht alles brauch ?

Glaub mir, die Programme im Background geben ihren Speicher bei Bedarf frei.
 

gregor

Reinette de Champagne
Registriert
14.10.08
Beiträge
421
Warum sollte Safari was freigeben wenn Cydia nicht alles brauch ?

Glaub mir, die Programme im Background geben ihren Speicher bei Bedarf frei.

nein, glaub ich dir nicht.
Woher soll Safari wissen, wieviel Memory eine App. braucht?
Ich Stelle jedenfalls fest, dass das iPhone bei freiem Memory unter 8 MB extrem zaeh ist - egal, ob Safari meint, dass es ausreichend ist

Gruss

Gregor
 

Thyraz

London Pepping
Registriert
14.05.08
Beiträge
2.050
nein, glaub ich dir nicht.
Woher soll Safari wissen, wieviel Memory eine App. braucht?
Ich Stelle jedenfalls fest, dass das iPhone bei freiem Memory unter 8 MB extrem zaeh ist - egal, ob Safari meint, dass es ausreichend ist

Er hat aber durchaus recht.
Safari weiß es daher, weil das System ihm sagt "Gib Ram frei der nicht unbedingt benötigt wird", "Ach komm, gib nochmal RAM frei".

Das iPhone OS basiert eben zu sehr großen Teilen auf dem Desktop OS X,
und wir haben daher auch eine recht moderne Speicherverwaltung für unser kleines Spielzeug.

Klar, wenn du Safari abschießt hast du immer etwas mehr frei,
aber er belegt keine 12MB mehr wenn der Speicher wirklich knapp wird.


Das Safari nach dem Start einer anderen App weniger Ram belegt hast du ja schon gemerkt,
man sieht den Effekt aber auch noch an etwas Anderem:

Lädst du eine Seite in Safari, schließt ihn und öffnest ihn erneut,
ist die Seite sofort wieder verfügbar.

Öffnest du dazwischen jedoch ein Speicherhungriges App,
muss die Seite beim betreten von Safari neu geladen werden.
Das Safari im Hintergrund weiterläuft, kann also durchaus Zeit und Traffic sparen unterwegs.

Safari hält also Daten im Speicher die nicht "unbedingt" nötig sind,
aber bei denen es von Vorteil sein könnte sie schnell wieder verfügbar zu haben.
Verlangt das System nach freiem Speicher, werden diese Daten eben verworfen.

Dennoch kostet dieses Speicher Jonglieren sicher auch etwas Zeit.
Das 3GS ist sicher nicht zuletzt wegen des größeren Rams in der alltäglichen Nutzung "lagfreier".
 

gregor

Reinette de Champagne
Registriert
14.10.08
Beiträge
421
Hi Thyraz,

wahrscheinlich sprechen wir aneinander vorbei.

Ich kenne die Speicherverwaltung unter OSX etc. nicht, kann mir insofern auch kein Urteil darueber erlauben, ob sie "modern" ist oder nicht.

Worueber ich mir aber ein Urteil erlauben kann, ist folgendes:

Wenn Safari im Hintegrrund weiterlaeuft, geht das freie Memory im schlimsten Fall auf 4MB runter.

Fakt ist, dass in so einem Fall das iPhone sich wirklich extrem zaeh bedienen laesst. Beispiel: Druecken des "Home"-Buttons, anschl. dauert's bis zu 3 Sekunden, bis eine Reaktion erfolgt.

Insofern bin ich halt der Meinung, dass sich Safari hier zuviel Memory "goennt".

Ich kann auch nicht nachvollziehen, welchen Vorteil ein offener Safari im Hintergrund haben soll: Wenn ich Safari aufrufe, will ich i.d.R. ja nicht die Seite aufrufen, die zuletzt angezeigt worden ist, sondern ich moechte eine *neue* Seite aufrufen - da nutzt die "Vorhalte-Taktik" genau gar nichts. Selbst, wenn ich die alte Seite wieder aufrufen moechte, moechte ich in der Regel eine aktualisierte version der Seite sehen (Wetter, Chats, Spiegel - such Dir eine aus). Auch hier macht es IMHO keinen Sinn, den alten Inhalt vorzuhalten.

Der einzige Vorteil waere eine verkuerzte Ladezeit von Safari, aber dieser kleine Vorteil wiegt IMHO die Nachteile, die durch dieses verhalten entstehen, bei weitem nicht auf.

Insofern faende ich es besser, wenn Safari sich beim "Beenden" (also Druck auf "Home" komplett beendet.

Wir entwickeln hier selbst Software (allerdings nicht fuer OSX), und insofern denke ich mal beurteilen zu koennen, dass die aktuelle Verhaltensweise von Safari nicht das gelbe vom Ei ist & ich wuerde mir wuenschen, dass Aplle dieses Verhalten noch einmal ueberdenkt - andere Apps geben ihren Speicher ja schlieslich auch frei.

Was weiterhin auffaellt, ist, dass z.B. einige Anwendungen bei Aufruf kommentarlos abstuerzen, wenn nicht genug Memory vorhanden ist (und nein, eine Wiederherstellung des iPhone schafft hier keine Abhilfe).

Aber ok, ist wohl muessig, darueber zu diskutieren, wir haben hier scheint's unterschiedliche Meinungen, und aendern koennen wir es wohl auch nicht.

Gruss

Gregor
 

sailing-away

Weißer Winterglockenapfel
Registriert
27.09.07
Beiträge
879
@gregor

Ich kann den anderen Schreibern nur beipflichten. Es ist ein Feature und kein Bug, dass Safari im Hintergrund weiterläuft und somit Speicher in Anspruch nimmt. Ebenso wie Telefon und Mail, soll Safari weiterlaufen, auch wenn man es beendet hat. Der Vorteil ist, dass geöffnete Seiten auch im Hintergrund geöffnet bleiben und beim erneuten Start von Safari innerhalb einer kurzen Zeit nicht erneut nachgeladen werden müssen. Sie werden also sofort angezeigt und das erleichtert ein Springen zwischen Safari und einer anderen Application. Und je mehr Seiten in Safari geöffnet sind, desto mehr Speicher nimmt Safari in Anspruch. Wenn Du also nur noch 4MB frei hast, dann hat Safari auch mehr als nur eine Seite offen, sondern vielleicht bis zu 8 Seiten gleichzeitig.

Aber wenn Du in Safari ALLE Seiten über das rote X schließt, beendet sich Safari nach dem Schließen komplett und gibt sämtlichen Speicher frei.

Und es ist auch richtig, dass Safari irgendwann vom System geschlossen wird, wenn eine App im Vordergrund mehr Speicher will, als aktuell zur Verfügung steht.
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
Also für mich hört sich das alles nach ganz normalem Verhalten eines unixoiden Systems an.
 

Ortega

Antonowka
Registriert
26.05.09
Beiträge
352
nee ist nicht normal,seit 3.0 hab ich auch einen memory verbrauch der nichtmehr schön ist,auch ohne jailbreak,habs extra getestet. teilweise echt nur 4-8mb speicher frei(iPhone 3g),apps ruckeln vor sich hin,ich muss sehr oft free memory einsetzen damit ich das ding nicht neustarten muss.(also nach ca 20stunden laufzeit ist ende,dann kann man free memory machen oder neustarten,nix geht mehr,unter 2.2.1 lief mein iPhone locker 5tage ohne neustart,keine memory leaks)

ich vermute dieses dämliche spotlight als übeltäter(warum kann man den murks nicht abstellen?)

hier auszug aus der app "memory info" just zu diesem zeitpunkt,iPhone ist seit 2tagen an:

free:3,62mb(!!!)
inactive:9,9mb
active:18,07mb
wired:30,16mb

daran verstehe ich schonmal eins nicht:wenn ich das alles zusammenzähle komm ich auf knappe 60mb,wo ist der rest von den 128mb? drücke ich nun bei memory info "free memory" hab ich:

free:44,67mb
inactive:2,2mb
active:4,8mb
wired:28,71mb

wie gesagt egal ob jailbroken oder nicht,ändert garnichts an den werten. vor allem sehe ich das der iPod ständig aktivert wird obwohl ich den nichtmal aufrufe..push ist aus,wlan auch
speichermanagement 3.0=bockmist,selbst nach einem langen telefonat ist der speicher voll und danach steht das ganze erstmal 10-15sekunden,totaler freeze..also spass macht das nicht vor jedem spiel erstmal memory zu räumen weils sonst ruckelt
 
Zuletzt bearbeitet:

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
Kleine Nebenbemerkung: Wir sind hier nicht unter Windows. Ihr wollt keinen "Free"-Speicher.

Freier Speicher ist in einem Computer "PS, die man nicht nutzt". Unioxide Systeme packen sich schlauerweise den Arbeitsspeicher so voll, wie es nur eben es geht.
Da manuell einzugreifen und Speicher frei zu machen ist absolut kontraproduktiv.

Und ja, auch ich glaube Euch allen, dass Eure iPhones träge sind, aber der Grund liegt nicht darin, dass das iPhone keinen "Freien"-Speicher mehr hat.
Mein iPhone 2G mit 3.0.1 läuft jedenfalls blitzschnell und hat gerade mal 3MB "free" Memory.

Übrigens hat das iPhone 3G als "User Memory" nur einen Teil des physischen Speichers zur Verfügung, weshalb die Summe der angezeigten Speicherwerte weit unter 128MB liegen.
 

gregor

Reinette de Champagne
Registriert
14.10.08
Beiträge
421
@Bananenbieger:
Es hat nichts damit zu tun, dass ich freien Speicher "will".
Ich stelle einfach fest, dass das iPhone ab 12MB freiem Speicher
flüssig zu bedienen ist, aber unter 8MB ruckelt und zäh ist.
Insofern dreht es sich um den freien Speicher, den das OS bzw. Die App braucht.
Wenn ich dann eine Aussage lese, dass es ok sei, dass eine App abstürzt
bzw. Sich beendet, wenn nicht genügend freier Speicher vorhanden ist, kann ich nur noch mit dem Kopf schütteln.
Vor allem dann, wenn der Speicher durch eine App, die nutzlos im Hintergrund rumdümpelt, belegt ist.
Das ist keine "moderne" Speicherverwaltung, sondern Murks.
Aber für den durschnitichen Apple-Fanboy scheint ja sogar das ein Feature zu sein...

Gruß

Gregor
 

gregor

Reinette de Champagne
Registriert
14.10.08
Beiträge
421
Also für mich hört sich das alles nach ganz normalem Verhalten eines unixoiden Systems an.
Quatsch. Was hat es mit einem unixoidenn System zu tun, dass eine App im Hintergrund offen bleibt, wenn man sie beendet?!?
Starte mal Firefox unter einem beliebigen Linux und schau dir mal die Prozesse an:
Da bleibt nichts im Speicher hängen.
Das Verhalten hat nichts mit dem OS, sondern nur mit der App zu tun...

Gruß
Gregor
 
  • Like
Reaktionen: Ortega

gregor

Reinette de Champagne
Registriert
14.10.08
Beiträge
421
Keine wirkliche.
2 Wege funtionieren:

- via SBSettings den Safari-Prozess abschiessen

oder

- vor Beenden von Safari alle offenen Seiten durch Klick auf das rote Kreuz schließen

Gruß

Gregor
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
@Bananenbieger:
Ich stelle einfach fest, dass das iPhone ab 12MB freiem Speicher
flüssig zu bedienen ist, aber unter 8MB ruckelt und zäh ist.
Insofern dreht es sich um den freien Speicher, den das OS bzw. Die App braucht.
Tortzdem hat das nichts mit dem freiem Speicher zu tun. Ich würde eher darauf tippen, dass die Apps, welche zusätzlichen Speicher benötigen, den RAM nicht vernünftig für sich in Beschlag nehmen.

@Bananenbieger:
Das ist keine "moderne" Speicherverwaltung, sondern Murks.
Aber für den durschnitichen Apple-Fanboy scheint ja sogar das ein Feature zu sein...
...für den durchschnittlichen Linux- und BSD-Admin ist das ebenfalls ein Feature.


Quatsch. Was hat es mit einem unixoidenn System zu tun, dass eine App im Hintergrund offen bleibt, wenn man sie beendet?!?
Starte mal Firefox unter einem beliebigen Linux und schau dir mal die Prozesse an:
Da bleibt nichts im Speicher hängen.
Das Verhalten hat nichts mit dem OS, sondern nur mit der App zu tun...
Falsch. Der Home-Button heißt Home-Button, weil er Dich zum Home-Screen führt. Das Schließen von Apple- bzw. Drittanbieter-Apps geschieht durch andere Mechanismen, auf die Du als User nur mit Brachialgewalt ("Forced-Quit") Einfluss hast - Und dass aus gutem Grund.
 

Ortega

Antonowka
Registriert
26.05.09
Beiträge
352
Freier Speicher ist in einem Computer "PS, die man nicht nutzt". Unioxide Systeme packen sich schlauerweise den Arbeitsspeicher so voll, wie es nur eben es geht.
Da manuell einzugreifen und Speicher frei zu machen ist absolut kontraproduktiv.

was ist daran kontraproduktiv? das teil ruckelt voll ab,beim blättern bleibt die seite stehen,warum bitte soll man dann keinen speicher räumen bevor man einen wutanfall bekommt oder das ding neustarten muss,was erheblich nerviger ist als einmal "free memory" zu drücken. und das dein iPhone mit 3mb freiem speicher blitzschnell ist,sorry,kann ich so nicht glauben,wieviel apps hast du denn dadrauf,eine,zwei?

das problem tritt bei meheren leuten auf,also ist da irgendwas faul,es ist eh zum kotzen das safari und ipod immer aktiv bliebt,was soll so ein schwachsinn? die müllen da heftig den speicher voll ohne gebraucht zu werden,seh ich keinen sinn drin. und ohne killswitch bekommt man das nicht weg,ausser man will erst powertaste drücken bis der slider kommt und dann homebutton drücken(was das allerletzte ist,die 8sekunden früher zum abschiessen von apps waren schon nervig,seit 3.0 muss man da voll die verreknung starten,das ist ganz sicher NICHT benutzerfreundlich)

es ist traurig das dem system 3mb freier speicher zukommen,bei 128mb grundram..ob unix oder nicht das kann man nicht als "schlaues" speichermanagement bezeichnen..

irgendwas ist da faul mit dem speicher,meine meinung..vor 3.0 hats nicht so herbe geruckelt wenn das iPhone mal länger an war,macht in letzter zeit keinen bock mehr,ich telefoniere 20minuten,leg auf und hab einen dicken freeze weil alleine das telefonieren den speicher nochmehr vollmüllt..das kann ja nicht im sinne des erfinders sein das sich das iPhone ständig eine gedankenpause nimmt nachdem man telefoniert(!) hat-ohne free memory app/sbsettings/sysinfo würde ich mich mit dem teil nicht mehr vor die tür trauen

und ich wette könnte man spotlight komplett deaktivieren wäre das wieder wie früher,das ist ja auch noch ständig im system eingehakt..wollte ich nie,so eine suche im telefon,mag ja schön sein für einige,ich brauchs nit,also sollte die möglichkeiten gegeben werden den mist abzustellen..bei meinem 8gb phone weiss ich noch wo was ist,seh für mich keinen nutzen in der suchfunktion und vermute das die enorme ressourcen frisst
 
Zuletzt bearbeitet:

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
was ist daran kontraproduktiv?
Wie gesagt: Freier Speicher unter unixoiden Systemen sind verschwendete Resourcen. "Freier" Speicher ist dabei wirklich "leer" und "ungenutzt", während es eher auf den für die Applikation verfügbaren Speicher (und das ist eben nur zu einem kleinen Teil "freier" Speicher) ankommt.


und das dein iPhone mit 3mb freiem speicher blitzschnell ist,sorry,kann ich so nicht glauben,wieviel apps hast du denn dadrauf,eine,zwei?
10 Homescreens mit 121 Drittanbieterprogrammen.
 

Ortega

Antonowka
Registriert
26.05.09
Beiträge
352
ja ok,das mag durchaus sein,das wäre ja auch alles supi wenns denn nicht auf einmal herbe ruckeln würde und echt alles in slow motion abläuft..also scheint ja die interne speicherverwaltung nicht der hit zu sein sondern eher ein zweckmässiges "ich schiess nun app x ab,da kommt app y,die braucht mehr speicher"-folge ist:ruckel ruckel und ein user der das ding am liebsten richtung wand pfeffern würde weil man nitmal eine sms gerade eingetippt bekommt(extrem delay)