• 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

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
Lass mich raten: Das iPhone hat einen Jailbreak oder hatte mal irgendwann einen?
 

gregor

Reinette de Champagne
Registriert
14.10.08
Beiträge
421
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.
Dir ist schon klar, dass eine App unter Linux nur den Speicher allokieren kann, der OS-seitig zur Verfuegung steht?
Es gibt unter Linux (und meines Wissens auch nicht unter den normalen Unixen wie HP-UX etc. das "Feature", dass eine App versucht, Speicher zu allokieren und das OS dann den uebrigen Anwendungen mittelt, "hallo, bitte alle mal ein wenig Memory freimachen". Wir bauen hier Software fuer Linux, aber wenn ich Deine Aussagen richtig verstehe, bist Du damit ziemlich auf dem Holzweg.
Natuerlich ist freier Speicher eine "Verschwendung" wenn er nicht genutzt wird. Er ist aber notwendig, damit eine App z.B. per malloc() ueberhaupt Speicher allokieren kann. Natuerlich reicht hier auch virtueller Speicher, aber auch der muss erst mal zur Verfuegung stehen.
Ein "Einsammeln" von freiem Speicher, der durch die anderen Apps freigegeben wird, findet hier nicht statt.

...für den durchschnittlichen Linux- und BSD-Admin ist das ebenfalls ein Feature.
Sicherlich nicht, das wuesste ich.

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.

Komisch: Wie kommt es dann, dass ein Druck auf den Home-Button bei *allen* anderen Anwendungen zum Schliessen der Anwendung fuehrt, nur nicht bei Safari und IPod?
Ich kann nachvollziehen, dass iPod sich so verhaelt, damit man z.B. beim Surfen Musik hoeren kann - hier ist Backgrounding ein nuetzliches Feature, beim Safari def. nicht.

Was nutzt es Dir, wenn Du Safari aufrufst, und die letzte Seite wird Dir angezeigt? Die Inhalte sind veraltet, Du musst also eh einen Reload machen.

Versteh mich bitte nicht falsch:

Ich moechte Dir bestimmt nicht an's Bein pinkeln, aber ich denke beurteilen zu koennen, ob etwas sauber programmiert ist oder nicht - wir entwickeln hier schliesslich selbst Software. Das Verhalten von Safari macht einfach keinen Sinn - zumal sich alle anderen Anwendungen anders verhalten und somit zur Verwirrung beitraegt.

Ich habe jetzt fuer mich die Loesung gefunden, dass ich vor dem Schliessen von Safari alle Seiten innerhalb Safaris schliesse - das hilft ein wenig. Ist zwar nicht die optimale Loesung, geht aber.

Gruss

Gregor
 

computerschreck

Kleiner Weinapfel
Registriert
09.08.08
Beiträge
1.142
Jungs, ich hab was:

Wer sein iPhone gejailbreakt hat kann in Cydia das kleine Plugin SafariQuitter installieren, welches sich in das Springboard einklinkt (es ist eine .dylib). Dann sollte schluss mit wenig Speicher sein ;)

Ich nutze es selber seit ein paar Wochen und bin begeistert :)


EDIT: Zu finden ist das ganze in der Source http://cydia.iphoneil.net

Gruß,
der schreck
 
  • Like
Reaktionen: Ortega

Ortega

Antonowka
Registriert
26.05.09
Beiträge
352
Jungs, ich hab was:

Wer sein iPhone gejailbreakt hat kann in Cydia das kleine Plugin SafariQuitter installieren, welches sich in das Springboard einklinkt (es ist eine .dylib). Dann sollte schluss mit wenig Speicher sein ;)

Ich nutze es selber seit ein paar Wochen und bin begeistert :)


EDIT: Zu finden ist das ganze in der Source http://cydia.iphoneil.net

Gruß,
der schreck

gerade installiert,mal schauen wie es sich mit dem tool verhält die nächste zeit,also funktionieren tut es schonmal, kein safari mehr der im hintergrund rumdoktert,den test hat es schonmal bestanden,ich werde später mal schauen wieviel speicher noch zur verfügung steht

auf jeden fall schonmal danke für den tip
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
Dir ist schon klar, dass eine App unter Linux nur den Speicher allokieren kann, der OS-seitig zur Verfuegung steht?
...und der zur Verfügung stehende Speicher ist eben nicht gleich dem "freien Speicher". Der freie Speicher ist nur lediglich eine Teilmenge des zur Verfügung stehenden Speichers.

Wir bauen hier Software fuer Linux, aber wenn ich Deine Aussagen richtig verstehe, bist Du damit ziemlich auf dem Holzweg.
Software, an deren Entwicklung ich mitarbeite, ist bei jedem Linux und auch bei OSX serienmäßig dabei. Von daher glaube ich eher nicht, dass ich auf dem Holzweg bin. ;)

Natuerlich ist freier Speicher eine "Verschwendung" wenn er nicht genutzt wird. Er ist aber notwendig, damit eine App z.B. per malloc() ueberhaupt Speicher allokieren kann.
Falsch. -> man malloc

Sicherlich nicht, das wuesste ich.
Stell in einem x-beliebigen Linux-Pro-Forum die Frage: "Hilfe, kaum noch freier Speicher verfügbar! Memory-Leak?" und Du wirst exakt die Antworten bekommen, die ich auch in diesem Thread schon gepostet habe.


Komisch: Wie kommt es dann, dass ein Druck auf den Home-Button bei *allen* anderen Anwendungen zum Schliessen der Anwendung fuehrt, nur nicht bei Safari und IPod?
Ich kann nachvollziehen, dass iPod sich so verhaelt, damit man z.B. beim Surfen Musik hoeren kann - hier ist Backgrounding ein nuetzliches Feature, beim Safari def. nicht.
Stichwort: HTTP-Streaming. Damit lassen sich neuerdings über Safari bequem im Hintergrund Webradio-Streams abspielen.

Generell ist es sinnvoller, Safari im Hintergrund laufen zu lassen, da das Laden und Rendern von Seiten einige Zeit in Anspruch nimmt und eventuell Websites mit Ajax-Elementen sich bei einem Neustart nicht mehr im alten Zustand befinden (Dafür müsste man wiederum den kompletten Programmstatus wegsichern, was zu lange dauern würde)
Immerhin haben wir ja jetzt Copy&Paste und da will man ab und an auch mal in Safari eine Adresse pasten, die man erst noch aus dem Adressbuch holen muss.
 

Ortega

Antonowka
Registriert
26.05.09
Beiträge
352
so,ein tag getestet das kleine tool safariQuitter und was soll ich sagen:wunderbar,alles geht schneller von statten und es bliebt permanent genug speicher offen. bin kein einziges mal vom speicher her unter 20mb frei gefallen,ein enormes plus im gegensatz zu mickrigen 3mb.
 

sailing-away

Weißer Winterglockenapfel
Registriert
27.09.07
Beiträge
879
@ortega @gregor:
Wenn ein iPhone ruckelt, kann man natürlich an den Symptomen herum wurschteln, oder man setzt das System mal richtig auf und verzichtet darauf, nach dem Update von 2.x auf 3.0 das Backup von iTunes zurück zu sichern. Dies kann (muss nicht) zu Performance Problemen führen, wenn Einstellungen von FW 2.x in FW 3.0 wiederverwendet werden. Alternativ würde ich vor dem Update den Ordner /var/mobile/Library sichern und die Datenbanken für Notizen, Anrufe, Maps usw. später ins neue System kopieren.

Dass das Ruckeln nun ausschließlich an Safari liegen soll, wage ich zu bezweifeln.

Im Übrigen kann man Safari auch dadurch komplett beenden, indem man ALLE Seiten mit dem roten X schließt. Wenn Safari keine Seite mehr offen hat, wird die App beim Schließen komplett beendet.