R
roflmao
Gast
Hi,
warum ist ein GC oft schneller als manuelle Speicherverwaltung?
warum ist ein GC oft schneller als manuelle Speicherverwaltung?
Na ja mit Destruktoren ist der Komfort Part halt völlig irrelevant, insofern geht es mir hier wirklich um Performance. Es gibt ja nicht wenige die sagen, dass der GC oft schneller ist. Und mich interessiert jetzt warum.Ich würde nicht sagen das ein GC schneller wäre aber auf jedem Fall bequemer als eine manuelle Speicherverwaltung.
Der Thread wurde geschlossen weil er nicht ins Q/A Format passt, und keine der Antworten ist wirklich zufriedenstellend. Große Chunks kann ich auch mit manueller Speicherverwaltung bekommen.
der "Komfort" keine Destruktoren schreiben zu müssen und sich fast keine Gedanken um die GC machen zu müssen und die daraus resultierende Tatsache dass man in Java Kompositionen auch als solche darstellen kann und nicht auf Aggregationen ausweichen zu müssen ist ein Vorteil was OOP betrifft.Na ja mit Destruktoren ist der Komfort Part halt völlig irrelevant, insofern geht es mir hier wirklich um Performance. Es gibt ja nicht wenige die sagen, dass der GC oft schneller ist. Und mich interessiert jetzt warum.
Muss man in C++ nie, siehe unique_ptr, shared_ptr und Container.Hi,
der "Komfort" keine Destruktoren schreiben zu müssen
Hä? Ja, das ist bei Destruktoren recht ähnlich. (Und die können sogar Handels freigeben, Sockets schließen etc.)und sich fast keine Gedanken um die GC machen zu müssen
Dann zeig mal ein Beispiel, ich bin gespannt.und die daraus resultierende Tatsache dass man in Java Kompositionen auch als solche darstellen kann und nicht auf Aggregationen ausweichen zu müssen ist ein Vorteil was OOP betrifft.
Ne, der GC wäre eher ein notwendiges Übel, das man für Performance eingehen könnte, RAII ist da schon wesentlich komfortabler. (Aus oben genannten Gründen.)Persönlich denke ich dass ein eventueller Performancevorteil durch einen GC nur ein Nebeneffekt ist, nicht ein Hauptgrund für oder gegen einen GC.
Edit: Es sei denn natürlich, man möchte Dinge machen, die nicht direkt etwas mit Speicher zu tun haben. Dank der deterministischen Ausführung gibt es da ja noch ein paar Dinge.Muss man in C++ nie, siehe unique_ptr, shared_ptr und Container.