Aussagekraft von Benchmarks



  • Hi,
    ich bin ja ehrlich gesagt ein Fan von Benchmarks und ich weiß, einige hier nicht. :p
    Ich bin m. A. n. auf eine recht brauchbare Website gestoßen, wo verschiedene Sprachen gegeneinander antreten:

    http://benchmarksgame.alioth.debian.org/u64q/benchmark.php?test=all&lang=gcc&lang2=gpp&data=u64q

    Code kann eingesehen und Verbesserungen eingereicht werden.

    Wenn man auf einem Quadcore C gegen C++ antreten lässt, gewinnt C in 9 von 11 Fällen. Teilweise sogar mit großem Abstand. Ich dachte, dass der Programmierkomfort bei C++ dafür größer sei, aber dann sah ich, dass in 7 von 11 Fällen der C-Code kompakter(!) war als der von C++!
    Mir ist auch aufgefallen, dass sich bei den C++ Implementierungen rege an C-Bibliotheken bedient wurde, wobei ich ehrlich gesagt nicht weiß, ob es dafür C++ Äquivalente gibt.

    Mich würde gerne interessieren, was ihr von den Benchmarks haltet, mit Begründung natürlich. Wo kritisiert ihr die C++ Implementierungen? Was würdet ihr verbessern?

    L. G.,
    IBV



  • solche benchmarks sagen meistens mehr ueber die menschen als die sprachen aus.
    Es haengt sehr viel davon ab,
    - wie es implementiert wurde (also der faehigkeiten der menschen),
    - wie gut der compiler damit zurecht kommt (also der faehigkeit des schreibers den compiler zu antizipieren und des compiler schreibers den source zu antizipieren)
    - wie die hardware ist (also die faehigkeit des compilerschreibers auf die hardware optimieren zu lassen, der faehigkeit des code schreibers guten code fuer die hardware zu schreiben und der faehigkeit des cpu bzw pc architects die hw so auszulegen dass das binary schnell abgearbeitet wird).

    der simple beweiss ist, dass sowohl c als auch c++ theoretisch die moeglichkeit haetten perfekte binaries (perfekt im sinne von performance) zu generieren. In dem fall sollte der source zwar anders, das binary zumindestens von den opcodes her ziemlich 1:1 sein im binary diff. (eigentlich sollte jede sprache in dasselbe binary compiliert werden koennen, sofern die binary dasselbe macht).

    deswegen sind die benchmarks interesant, aber credits sollten die menschen erhalten, nicht sprachen.



  • In der Theorie hast du natürlich recht.

    L. G.,
    IBV


Anmelden zum Antworten