Wird C++ bald so langsam wie Java oder noch langsamer?
-
Immer mehr komfort Funktionen die unnötige Operationen machen, nur weil die Leute sonst immer alles falsch machen. Z.B. Smartpointer mit zusätzlichem Referenzzähler, statt einfacher Pointer. Sozusagen der kleine Garbagecollector für C++.
Oder die ganzen STL Collections die immer ne Kopie von allem was eingefügt wird machen. Wenn man größere Objekte einfügt, kann das ja ganzschön aufwendig werden. Da ist Java schon fast besser, weil da immer nur der Pointer in die Collection eingefügt werden.
-
1. Du musst das Zeug ja nicht benutzen. Was nicht gelinkt wird und nicht in deinem Code steht wird auch nicht gemacht.
2. Versuch doch selber solche Klassen zu schreiben. Vielleicht kriegst du Java ähnliche Teile hin.
Dann würde ich noch sagen, dass ich bezweifle, dass Java schneller wird, weil Java nunmal meistens in Bytecode vorliegt und während der Laufzeit erst geparsed wird.
-
[[[ schrieb:
Immer mehr komfort Funktionen die unnötige Operationen machen, nur weil die Leute sonst immer alles falsch machen. Z.B. Smartpointer mit zusätzlichem Referenzzähler, statt einfacher Pointer. Sozusagen der kleine Garbagecollector für C++.
Kein Garbagecollector, nein. Es gibt kein "Nebenprogramm", das alle Referenzen im Programm selbst überprüft und Rechenzeit verpulvert. Ausserdem sollte man shared_ptr (der arbeitet referenzgezählt) nur einsetzen wenn man ihn braucht. Ansonsten gibt es ja zB scoped_ptr, der so schnell ist wie ein normaler Zeiger (dank Kompileroptimierungen) und man kann das lästige delete nie weider vergessen.
[[[ schrieb:
Oder die ganzen STL Collections die immer ne Kopie von allem was eingefügt wird machen. Wenn man größere Objekte einfügt, kann das ja ganzschön aufwendig werden. Da ist Java schon fast besser, weil da immer nur der Pointer in die Collection eingefügt werden.
Was spricht dagegen hier zB shared_ptr einzusetzen? Bei großen Datenobjekten ist das sicherlich sinnvoll.
Gruß
Don06