[Java] Java / C++ Performance

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Satoru, 16. März 2010 .

Schlagworte:
  1. 16. März 2010
    Java / C++ Performance

    Hi Leute

    Ich habe eine Frage bezüglich des Performaceunterschiedes zwischen einer Java- und einer C++ Implementierung.
    Also ich habe ein Java Programm, und das gleiche Programm in C++. Jetzt löse ich mit den Programmen mehrere Probleme von unterschiedlicher Komplexität (bei dem kleinsten werden ~200 Arrays angelegt, bei dem größten >3000)
    Jetzt werden diese Probleme von C++ und Java mit ziemlich unterschiedlicher Performance gelöst:
    C++ löst die kleinen Probleme sehr viel schneller als Java, während die größten Probleme etwa gleich schnell gelöst werden. Also bei Java ist der Geschwindigkeitsunterschied zwischen diesen Problemen einfach wesentlich kleiner als bei C++
    Und ich kann mir das jetzt nicht so recht erklären, ich vermute das es was mit der VM zutun hat, die den Bytecode zur Laufzeit komipiert, aber das verursacht glaube ich, nicht so große Unterschiede.
    Was meint ihr dazu?

    Vielen Dank und viele Grüße,
    Satoru
     
  2. 16. März 2010
    AW: Java / C++ Performance

    1) Die kleinen Probleme werden in C++ deshalb schneller gelöst, weil hier der kompilierte Code direkt starten kann. Java muss erst die VM anschmeißen und dort den Code interpretieren. Das benötigt Zeit.

    2) Bei größeren Aufgaben relativiert sich dieser Zeitvorteil seitens C++ etwas. Die VM von Java muss einmal gestartet werden, aber das ist für größere Berechnungen nur noch ein kleiner Teil der gesamten Rechendauer.

    Allgemein kann man sagen, dass die Vorurteile, dass Java so langsam sei, sich mittlerweile stark relativiert haben. Die JVM wurde in den letzten Jahren stark optimiert und Java hat zunehmend an Performance gewonnen.
    Klar ist eine vollständig kompilierte Sprache immer schneller, als eine Sprache, die in einer virtuellen Maschine gestartet werden muss, aber wie gesagt: mit größerem Rechenaufwand relativiert sich das auch.
     
  3. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.