1. Foren
  2. Kommentare
  3. Handy
  4. Alle Kommentare zum Artikel
  5. › iPhone und iPad: Das Ende der 1-GByte…

Garbage Collector vs. Reference Counting

  1. Thema

Neues Thema Ansicht wechseln


  1. Garbage Collector vs. Reference Counting

    Autor: Theoretiker 03.04.17 - 09:32

    Ein guter Unterschied der beiden Systeme (iOS und Android) dürfte die Verwaltung des Speichers sein. Unter Android hat man den Garbage Collector, der sehr viel RAM braucht, um unbemerkt arbeiten zu können. Hat man nur noch weniger als sechsmal so viel Speicher, wie das System wirklich braucht, hat das der Garbage Collector merkliche Einflüsse auf die Leistung des Geräts.

    Von daher kann man pro GB effektiv keine 200 MB nutzen, sonst wird es alles recht langsam. Mit einem deterministischen System wie Reference Counting (CPython, Swift) wacht nicht irgendwann der Garbage Collector auf und lastet die CPU beim Aufräumen auf. Daher sollte man bei Systemen, die mit Garbage Collector laufen (Java) deutlich mehr RAM einplanen.

    Von daher ist es nicht verwunderlich, dass Android-Geräte mehr RAM haben: Die Ineffizienz des Garbage Collectors wird einfach durch mehr RAM ausgeglichen. Alternative wäre, dass man mit einer Sprache programmieren müsste, die mit weniger RAM präziser auskommt (C++). Das hat auf dem Jolla Phone gut funktioniert, ist jedoch schwerer zu bedienen und der App Store ist dann nicht voll mit Apps.

  2. Re: Garbage Collector vs. Reference...

    Autor: picaschaf 03.04.17 - 09:48

    Eben, dazu müssten die Entwickler ja was drauf haben. Aber heutzutage ist ja jeder drittklassige Baukastenklicker "App Entwickler".

  3. Re: Garbage Collector vs. Reference...

    Autor: schap23 03.04.17 - 09:51

    Klingt alles sehr schlau, ist aber mehr oder weniger Garbage. Moderne Garbage Collectors arbeiten ziemlich effizient. Dafür hat man dann auch nicht das Problem vor zyklischen Referenzen, die durch Reference Counting nicht aufgelöst werden können, sondern vom Programmierer durch Weak References etc. aufgelöst werden müssen.

    Der Unterschied zwischen iOS und Android ist, daß Android im wesentlichen ein vollständiges, auf Linux basierendes Betriebssystem ist. Hintergrundprozesse sind dort was normales. iOS ist ein auf beschränkte Ressourcen eingeschränktes Betriebssystem. Hintergrundprozesse sind dort die Ausnahme. Im wesentlichen werden alle Apps, die nicht angezeigt werden, in einen Ruhezustand versetzt. Deshalb sagt Apple auch, daß es keine Rolle spielt, ob man geöffnete Apps manuell schließt oder nicht.

  4. Re: Garbage Collector vs. Reference...

    Autor: Slurpee 03.04.17 - 10:37

    Theoretiker schrieb:
    --------------------------------------------------------------------------------
    > Alternative wäre, dass man mit einer Sprache programmieren
    > müsste, die mit weniger RAM präziser auskommt (C++).

    Klar und Webapplikationen schreiben wir in Zukunft wieder in C. Das löst dann sicher auch die Problematik beim Browsercaching.

    Es gibt gute Gründe, warum man heutezutage nicht mehr für jeden Mist den Speicher selbst managed.

    Alternative: Apple soll einfach aufhören, mit dem RAM zu geizen.

    picaschaf schrieb:
    --------------------------------------------------------------------------------
    > Eben, dazu müssten die Entwickler ja was drauf haben. Aber heutzutage ist
    > ja jeder drittklassige Baukastenklicker "App Entwickler".

    Das hat nichts mit "drauf haben", sondern mit Aufwand zu tun. Ihr alle erwartet topmoderne, hochperformante und stabile Apps mit 1000 features und das am besten für Lau...



    1 mal bearbeitet, zuletzt am 03.04.17 10:41 durch Slurpee.

  5. Re: Garbage Collector vs. Reference...

    Autor: laserbeamer 03.04.17 - 10:50

    Slurpee schrieb:
    --------------------------------------------------------------------------------
    > Klar und Webapplikationen schreiben wir in Zukunft wieder in C.

    Alles was mehr als HTML und CSS ist? Ja.
    Für einfache Seiten die nur HTML nutzten reicht ja ein Webserver (nginx etc), aber für mehr ist halt ein in c/c++ geschriebener Server deutlich performanter als irgendein (drecks) PHP Skript oder was es da noch alles gibt.
    Gibt ja auch gute Netzwerkbibliotheken und gerade wenn man modernes c++ schreibt muss man sich um den Speicher nicht mehr selber kümmern.
    Daher RAII.
    Wenn du irgendwo noch ein new außerhalb einer smartpointer Klasse hast, solltest du noch Mal nachgucken (in Klassen eigene Pointer haben geht, man sollte nur sorgfältig sein).

  6. Re: Garbage Collector vs. Reference...

    Autor: Slurpee 03.04.17 - 11:02

    laserbeamer schrieb:
    --------------------------------------------------------------------------------
    > Alles was mehr als HTML und CSS ist? Ja.
    > Für einfache Seiten die nur HTML nutzten reicht ja ein Webserver (nginx
    > etc), aber für mehr ist halt ein in c/c++ geschriebener Server deutlich
    > performanter als irgendein (drecks) PHP Skript oder was es da noch alles
    > gibt.

    Ach komm, das kannst du doch nicht ernst meinen. So ziemlich jede moderne Webapp hat ein Java-Backend und ein Javascript-Frontend. Kein Mensch entwickelt sowas noch in C/C++.

    Jetzt brauchst du mir dann bloß noch erzählen, das Amazon, Netflix und co. langsam sind...

  7. Re: Garbage Collector vs. Reference...

    Autor: backdoor.trojan 03.04.17 - 11:41

    Slurpee schrieb:
    --------------------------------------------------------------------------------
    > laserbeamer schrieb:
    > ---------------------------------------------------------------------------
    > -----
    > > Alles was mehr als HTML und CSS ist? Ja.
    > > Für einfache Seiten die nur HTML nutzten reicht ja ein Webserver (nginx
    > > etc), aber für mehr ist halt ein in c/c++ geschriebener Server deutlich
    > > performanter als irgendein (drecks) PHP Skript oder was es da noch alles
    > > gibt.
    >
    > Ach komm, das kannst du doch nicht ernst meinen. So ziemlich jede moderne
    > Webapp hat ein Java-Backend und ein Javascript-Frontend. Kein Mensch
    > entwickelt sowas noch in C/C++.
    >
    > Jetzt brauchst du mir dann bloß noch erzählen, das Amazon, Netflix und co.
    > langsam sind...


    Oder nodejs, Python, Perl, Ruby gibts auch oft genug. Gerade im Backend.

  8. Re: Garbage Collector vs. Reference...

    Autor: droptable 04.04.17 - 12:28

    Ja, das ist eine sehr gute Idee! C/C++ als direktes Web-Backend ... warum macht das denn keiner? ...

    Es ist viel zu unsicher und instabil ein C/C++ Programm zu nutzen um Benutzereingaben usw. zu verarbeiten. 1 Pufferüberlauf und deine Web-Applikation ist dahin, vielleicht sogar kompromittiert und unbrauchbar (und dein Server unter fremder Kontrolle).

    In solchen doch recht Sicherheitsrelevanten Bereichen ist man immer gut daran eine gemanagte Sprache wie Java, PHP, Python, JS oder Ruby zu nutzen bevor man seine Daten an ein Low-Level Backend übergibt.

    Alternativen wären in diesem Fall Sprachen wie Rust, bei denen Speicherzugriffsfehler so ziemlich ausgeschlossen sind, aber trotzdem ungemanagt arbeiten.

    Kurz: Es spricht absolut nichts dagegen C/C++ um Web zu nutzen, aber eben nicht an vorderster Front, sondern im Hintergrund mit einem Vermittler wie PHP/Python usw..

  9. Re: Garbage Collector vs. Reference...

    Autor: Gandalf2210 03.04.17 - 10:50

    Vom den 8 Kernen kann dich ruhig einer fürs Müll aufräumen zuständig sein.

  10. Re: Garbage Collector vs. Reference...

    Autor: jak 03.04.17 - 11:00

    Theoretiker schrieb:
    --------------------------------------------------------------------------------
    > Ein guter Unterschied der beiden Systeme (iOS und Android) dürfte die
    > Verwaltung des Speichers sein. Unter Android hat man den Garbage Collector,
    > der sehr viel RAM braucht, um unbemerkt arbeiten zu können. Hat man nur
    > noch weniger als sechsmal so viel Speicher, wie das System wirklich
    > braucht, hat das der Garbage Collector merkliche Einflüsse auf die Leistung
    > des Geräts.

    Ist eher 2 Mal so viel Speicher. Die Hälfte ist frei, die andere Hälfte belegt. Das so in Mittel bei der Analyse meiner App.

  11. Re: Garbage Collector vs. Reference...

    Autor: wasdeeh 03.04.17 - 11:37

    Um Gottes Willen. Das ist so unglaublicher Blödsinn, was moderne GC im Allgemeinen und Memory Management bei Android im Speziellen betrifft...Bitte mal bezüglich des Themas auf halbwegs aktuellen Wissensstand kommen.

  12. Re: Garbage Collector vs. Reference...

    Autor: Theoretiker 04.04.17 - 09:21

    wasdeeh schrieb:
    --------------------------------------------------------------------------------
    > Bitte mal bezüglich des Themas auf halbwegs aktuellen
    > Wissensstand kommen.

    Gut, dann ist der Artikel, den ich im Kopf habe, schon extrem veraltet. Ich weiß nicht mehr, von wann der ist.

    Ein Bekannter von mir hat ein Spiel in TypeScript geschrieben, das innerhalb des eigentlichen Spiels kein einziges `new` mehr Aufrufen durfte. Ansonsten wurde der GC eventuell angeworfen und es ging von flüssig in eine Diashow über. Daher hat er alle Objekte vorher erzeugt. Das ist nur ein paar Jahre her.

    Mich betrifft das alles nicht so richtig, mein Gebiet ist C++ auf Supercomputern. Meine letzten eigenen Erfahrungen mit Java sind von 2011.

  1. Thema

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Sie müssen ausserdem in Ihrem Account-Profil unter Forum einen Nutzernamen vergeben haben. Zum Login

Stellenmarkt
  1. JavaScript Developer (m/w/d) im Bereich Output Management
    Lowell Financial Services GmbH, deutschlandweit
  2. IT-Anwender- und Standort Support (m/w/d)
    Radeberger Gruppe KG, Radeberg
  3. Mitarbeiter (w/m/d) IT-Service
    The Boston Consulting Group GmbH, Frankfurt
  4. Softwareentwickler*in DevOps
    WSW Wuppertaler Stadtwerke GmbH, Wuppertal

Detailsuche


Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Top-Angebote
  1. (u. a. Ring Fit Adventure für 59,99€, Nintendo Switch Lite für 166,24€, Samsung GU75AU7179 75...
  2. (u. a. Computer & Zubehör, Video Games, Baumarkt, Elektronik & Foto)
  3. (u. a. Bontec Monitor-Halterung für 2 Monitore bis 27 Zoll für 27,41€, UGREEN USB C Hub mit 4K...
  4. (u. a. Nintendo Switch Pro Controller + Monster Hunter Rise für 89,99€, Nacon Gaming-Stuhl für...


Haben wir etwas übersehen?

E-Mail an news@golem.de