Benchmarks…

ich lese gerade bei Daniel darüber, wieso er Java nicht mag. In einem weiterführenden Artikel ist ein Link auf einen C++ versus Java-Benchmark. Darin findet sich ein Benchmark, der in Java 0,1 Sekunde schneller ist als der in C++.

Jetzt sind Benchmarks in der Theorie ja dazu da, eine gewisse Vergleichbarkeit zwischen Instrumentationen (in diesem Falle Computer-Hochsprachen) zu geben. Was dabei gerne (wie bei jeder Statistik auch) vergessen wird, ist, dass die Implementierung eines bestimmten Tests einfach absolut Ausschlag gebend für einen solchen Test ist. Da spielen schon die kleinsten Kleinigkeiten eine Rolle. Schon, ob bei der Parameterübergabe mit Pointern oder transportierten Werten gearbeitet wird (und ob die verwendete Sprache sowas überhaupt unterstützt und wie gut der Compiler bzw. die Laufzeitumgebung das umgesetzt hat bzw. anhand von speziellen Regeln optimiert) ist absolut elementar.

Und was mich ganz besonders irritiert: Wie kann eine (wie auch immer geartete) Implementierung, die auf einer Laufzeitumgebung und einem Just-In-Time-Compiler aufsetzt, der wiederum als Basis C++ verwendet schneller sein als die Basis selber? Klingt für mich irgendwie unlogisch, ehrlich gesagt.