Hallo,
Ich habe eine Simulation geschrieben und sie sowohl in Java als auch in C++ implementiert.
Als ich die Laufzeit verglich, erstaunte ich, dass das Java viermal so schnell war wie das C++ Programm.
Ich konnte jetzt genau einkesseln an welcher Stelle es liegt, dass das C++ Programm soviel langsamer ist und zwar müssen im Programm sehr viele Wurzeln berechnet werden.
Ich habe die Laufzeit der entsprechenden Bibliotheksfunktion von Java und C++ miteinander verglichen.
Auf meinem System werden in Java etwa 0,3 Sekunden benötigt um eine Milliarde Wurzeln zu berechnen, während die Funktion sqrt() aus C++ etwa 30 Sekunden braucht.
Das ist ein Faktor 100. Wieso ist die Javafunktion soviel schneller und was kann ich machen, um die Wurzelberechnungen in C++ zu optimieren?
Weiß eigentlich jemand wie die Math.sqrt() implementiert ist, weil die mir als verdammt schnell erscheint, auch mit eigenen Implementierungen zur Wurzelberechnung kam ich nicht annähernd an die Geschwindigkeit ran.
Vielen Dank im
Voraus
Ich habe eine Simulation geschrieben und sie sowohl in Java als auch in C++ implementiert.
Als ich die Laufzeit verglich, erstaunte ich, dass das Java viermal so schnell war wie das C++ Programm.
Ich konnte jetzt genau einkesseln an welcher Stelle es liegt, dass das C++ Programm soviel langsamer ist und zwar müssen im Programm sehr viele Wurzeln berechnet werden.
Ich habe die Laufzeit der entsprechenden Bibliotheksfunktion von Java und C++ miteinander verglichen.
Auf meinem System werden in Java etwa 0,3 Sekunden benötigt um eine Milliarde Wurzeln zu berechnen, während die Funktion sqrt() aus C++ etwa 30 Sekunden braucht.
Das ist ein Faktor 100. Wieso ist die Javafunktion soviel schneller und was kann ich machen, um die Wurzelberechnungen in C++ zu optimieren?
Weiß eigentlich jemand wie die Math.sqrt() implementiert ist, weil die mir als verdammt schnell erscheint, auch mit eigenen Implementierungen zur Wurzelberechnung kam ich nicht annähernd an die Geschwindigkeit ran.
Vielen Dank im
Voraus