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

Wochenende!!! Zeit für Quatsch!
  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 Counting

    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 Counting

    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 Counting

    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 Counting

    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 Counting

    Autor: Gandalf2210 03.04.17 - 10:50

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

  7. Re: Garbage Collector vs. Reference Counting

    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.

  8. Re: Garbage Collector vs. Reference Counting

    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...

  9. Re: Garbage Collector vs. Reference Counting

    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.

  10. Re: Garbage Collector vs. Reference Counting

    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.

  11. Re: Garbage Collector vs. Reference Counting

    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.

  12. Re: Garbage Collector vs. Reference Counting

    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..

  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. Anstalt für Kommunale Datenverarbeitung in Bayern (AKDB), München, Regensburg
  2. M-net Telekommunikations GmbH, München
  3. Jedox AG, Freiburg im Breisgau
  4. über duerenhoff GmbH, Stuttgart

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Hardware-Angebote


Haben wir etwas übersehen?

E-Mail an news@golem.de


Bill Gates: Mit Technik gegen die Klimakatastrophe
Bill Gates
Mit Technik gegen die Klimakatastrophe

Bill Gates' Buch über die Bekämpfung des Klimawandels hat Schwächen, es lohnt sich aber trotzdem, dem Microsoft-Gründer zuzuhören.
Eine Rezension von Hanno Böck

  1. Microsoft-Gründer Bill Gates startet Podcast

XPS 13 (9310) im Test: Dells Ultrabook ist besser denn je
XPS 13 (9310) im Test
Dells Ultrabook ist besser denn je

Wir dachten ja, bis auf den Tiger-Lake-Chip habe Dell am XPS 13 nichts geändert. Doch es gibt einige willkommene Änderungen.
Ein Test von Marc Sauter

  1. Dell-Ultrabook XPS 13 mit weniger vertikalen Pixeln
  2. Notebooks Dells XPS 13 mit Intels Tiger Lake kommt
  3. XPS 13 (9300) im Test Dells i-Tüpfelchen

MCST Elbrus: Die Zukunft von Russlands eigenen Prozessoren
MCST Elbrus
Die Zukunft von Russlands eigenen Prozessoren

32 Kerne für Server-CPUs, eine Videobeschleunigung für Notebooks und sogar SSDs: In Moskau wird die Elbrus-Plattform vorangetrieben.
Ein Bericht von Marc Sauter

  1. Anzeige Verkauf von AMDs Ryzen-5000-Serie startet
  2. Alder Lake S Intel bestätigt x86-Hybrid-Kerne für Desktop-CPUs
  3. Core i5-L16G7 (Lakefield) im Test Intels x86-Hybrid-CPU analysiert