Warum diese Speicherverwaltung in obj-c

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • At the top of your wishlist of things we could do for you is bringing garbage collection to iOS. And that is exactly what we are not going to do… Unfortunately garbage collection has a suboptimal impact on performance. Garbage can build up in your applications and increase the high water mark of your memory usage. And the collector tends to kick in at undeterministic times which can lead to very high CPU usage and stutters in the user experience. And that’s why GC has not been acceptable to us on our mobile platforms. In comparison, manual memory management with retain/release is harder to learn, and quite frankly it’s a bit of a pain in the ass. But it produces better and more predictable performance, and that’s why we have chosen it as the basis of our memory management strategy. Because out there in the real world, high performance and stutter-free user experiences are what matters to our users. ~Session 300, Developer Tools Kickoff, 2011, 00:47:49


    Quelle:
    sealedabstract.com/rants/why-mobile-web-apps-are-slow/
  • Das Problem, warum ARC so komplex erscheint, ist, dass alle immer ewig Reference-Counting erklären und die Probleme von ARC. Dabei ist die Regel ganz einfach: In 99.99999 % aller Fälle tue einfach gar nichts.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • MRR:
    1. Ich kümmere mich um Erstellung, Speicherung und Freigabe der Objekte gemäß meines Konzepts und den Speichermanagementregeln.
    2. Der Analyzer in Xcode erklärt mir, wo ich Schnitzer drin habe.
    3. Ich ändere die Schnitzer gemäß des Analizers von Xcode.
    4. Ich ärgere mich, dass Xcode den Scheiß nicht automatisch macht, wenn es doch eh alles besser weiß.
    5. Die Punkte 1 bis 4 wiederholen sich.


    ARC:
    1. Ich kümmere mich um Erstellung und Speicherung der Objekte gemäß meines Konzepts und den Speichermanagementregeln.
    2. Xcode macht den Scheiß automatisch, weil es doch eh alles besser weiß.
    3. Die Punkte 1 bis 2 wiederholen sich.

    In beiden Fällen führt es zu Problemen, wenn mein Konzept scheiße ist. ;)
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Amin Negm-Awad schrieb:

    macmoonshine schrieb:

    Man muss halt nur wissen, wann man weak schreibt ;)
    Ach, wie häufig hat man das denn und dann ist es unmittelbar einleuchtend.

    Alles ist einfach, wenn man weiß wie es geht. ;)

    Aber Du hast schon recht: Häufig braucht man schwache Referenzen für fortgeschrittenere Konzepte (z. B. eigene Delegates), und da sollte man die Speicherverwaltung bereits verstanden haben.
    „Meine Komplikation hatte eine Komplikation.“
  • Neee, ich muss dazu ja gar nicht wissen, wie RC – ob nun manuell oder automatisch – im Detail geht. Ich muss nur wissen, dass Verweise Objekte halten und dass dies weak-Verweise nicht machen. Die Problemstellung erklärt sich ja eigentlich schon von selbst mit nur ein paar Sätzen.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Amin Negm-Awad schrieb:

    Das Problem, warum ARC so komplex erscheint, ist, dass alle immer ewig Reference-Counting erklären und die Probleme von ARC. Dabei ist die Regel ganz einfach: In 99.99999 % aller Fälle tue einfach gar nichts.


    KaiKay, warum ist der "Gefällt mir"-Button weg? Für den Beitrag brauche ich 10 Daumen nach oben. :thumbup:
  • Amin Negm-Awad schrieb:

    Das Problem, warum ARC so komplex erscheint, ist, dass alle immer ewig Reference-Counting erklären und die Probleme von ARC. Dabei ist die Regel ganz einfach: In 99.99999 % aller Fälle tue einfach gar nichts.


    und wenn dann dieser 0.00001% Fall in einer etwas komplexeren App auftaucht (und das tut es zu 99.99999%), sind 99.99999% der Programmierer die nie ohne ARC gelernt haben zu entwickeln, komplett überfordert.

    Gruss

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • kmr schrieb:

    Na denn. Hat Kay nur mich zum Misantrophen gemacht. Dabei liegt mir nichts ferner. :evil:

    Tja, überleg Dir vorher wen Du in Deine Blacklist setzt. +scnr+
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Thallius schrieb:

    Amin Negm-Awad schrieb:

    Das Problem, warum ARC so komplex erscheint, ist, dass alle immer ewig Reference-Counting erklären und die Probleme von ARC. Dabei ist die Regel ganz einfach: In 99.99999 % aller Fälle tue einfach gar nichts.


    und wenn dann dieser 0.00001% Fall in einer etwas komplexeren App auftaucht (und das tut es zu 99.99999%), sind 99.99999% der Programmierer die nie ohne ARC gelernt haben zu entwickeln, komplett überfordert.

    Gruss

    Claus
    Quatsch. Dann muss man ARC gelernt haben, nicht MRC.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Jedem steht frei ARC nicht zu mögen.
    Graf Zahl hat bestimmt gute Gründe.

    Count von Count schrieb:

    Ein kleiner Retain Count. Zwei kleine Retain Counts. Drei kleine Retain Counts. Vier! Vier kleine Retain Counts! +hahahaha+ <Hier Donner, Blitz und prasselnden Regen akustisch vorstellen> Fünf kleine Retain Counts. Sechs kleine Retain Counts.
    Halt, was passiert hier? Fünf kleine Retain Counts. Vier kleine Retain Counts… Hört sofort auf damit! Drei kleine Retain Counts.
    Puh! Vier kleine Retain Counts. Fünf kleine Retain Counts. Sechs! Sechs kleine Retain Counts! +hahahaha+ <Hier wieder Donner, Blitz und prasselnden Regen akustisch vorstellen> Sieben kleine Retain Counts. Acht kleine…
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P