Sensation! Gregor gibt zu: C++ schneller als Java



  • Quelle und Fakten:

    Gregor schrieb:

    Gregor schrieb:

    Mit anderen Worten: Der gleiche Algorithmus in C++ würde eine ähnliche Zeit benötigen. Wahrscheinlich würden die zeitlichen Abweichungen zwischen den beiden Implementierungen bei weniger als 10% liegen.

    Ich muss mich hier etwas korrigieren. Nachdem ich den Algorithmus jetzt auch mal in C++ implementiert habe, habe ich festgestellt, dass die 10% doch noch etwas zu optimistisch waren. In einem ersten Probelauf hat die C++-Variante 72% der Zeit der Java-Variante gebraucht.

    ...hierzu muss folgendes gesagt werden:

    1. Ich hatte unter C++ mit der Vigra-Bildverarbeitungsbibliothek ein sehr performantes Werkzeug zur Hand, das ich in der Java-Variante so nicht zur Verfügung hatte.

    2. Die Übertragung des Algorithmus war natürlich nicht komplett 1:1. Teilweise wurden leicht unterschiedliche Datenstrukturen gewählt. Und ein paar andere kleine Abweichungen gab es auch. Sollte aber insgesamt nicht viel ausmachen.

    3. Ich bin bei weitem nicht so fit in C++ wie manch anderer hier. Kann also durchaus sein, dass man aus der C++-Version noch ein bischen rausholen kann. Andererseits kann man auch noch ein bischen was aus der Java-Variante rausholen. ...der Code ist in beiden Fällen "auf die Schnelle hingefrickelt".

    4. Gemessen wurde in beiden Fällen mit dem Programm "time". Insofern muss man auch bedenken, dass bei der Java-Variante auch noch der Start der JVM mitgezählt wird. ...sollte aber auch nicht viel ändern.

    http://www.c-plusplus.net/forum/viewtopic-var-p-is-1114600.html#1114600


Log in to reply