Benchmarks - Dichtung und Wahrheit

Sei es im Internet oder in PC-Zeitschriften: Ständig werden Produkte anhand von Benchmarks bewertet. Oft bilden sie den wichtigsten Teil bei den verschiedensten Tests, ohne daß dies in Frage gestellt wird.

Übersicht:

Was man wissen sollte:

Nur in äußerst wenigen Fällen, z.B. bei der Datensicherung, beim Kompilieren von Programmcode oder in Netzwerkspielen, sind Geschwindigkeitsunterschiede von weniger als 20...30 Prozent praktisch bemerkbar.
Die Werte können sich zudem mit der Zeit deutlich ändern, sei es durch neue Versionen (das können durchaus Veränderungen sein, die man erst auf den zweiten Blick erkennt, z.B. neues Stepping, neues Layout, etc.) oder durch neue Treiber oder Updates.

Wer mit dem PC arbeitet (auch das soll es noch geben, aber warum ist dann ein Gerät ohne Audio und 3D mittlerweile nahezu unverkäuflich? ;-), der sollte auch daran denken, daß ein ordentlich organisierter Desktop, ein aufgeräumtes Startmenü bzw. Entsprechendes, Ordnung auf der Festplatte sowie (sehr effektiv) die Beherrschung und/oder Einrichtung von Tastenkürzeln für die wichtigsten Arbeitsschritte weitaus mehr bringen als ein etwas schnellerer PC, der die meiste Zeit dann eben 50 Prozent schneller wieder auf den Anwender wartet.

Was macht ein Benchmark und was nicht?

Ein Benchmark besteht immer aus einem mehr oder weniger umfangreichen Stück Software, das ein- oder mehrere Male abläuft. Die dabei verstrichene Zeit bestimmt dadurch die gemessene Geschwindigkeit.
Eine alte Technikerweisheit besagt:
Wer mißt, mißt Mist

Und ein Benchmark ist nun einmal auch ein Meßgerät.

Davon gibt es verschiedene Realisierungen:
Ein Low-Level-Test, der nur in einer kleinen Schleife aus Speicherzugriffen, Additionen, Divisionen oder Plattenzugriffen besteht, kann diese Werte zwar sehr genau liefern, allerdings laufen diese isoliert ab und haben selbst bei hohen Abweichungen vom Normalwert nur einen geringen Einfluß auf die Gesamtperformance.
Dasselbe gilt für den Test einer einzelnen Funktionsgruppe, auch wenn dessen Ergebnisse schon eher von Bedeutung sind.

Auch das Durchlaufen eines kompletten Programmes als Meßwerkzeug ist oft nicht genug aussagekräftig, da besonders als Benchmarks verwendete Programme oft spürbar von gewissen Funktionsgruppen und/oder Optimierungen abhängig sind, welche nicht unbedingt mit den verwendeten ihrer meistbenutzten Programme identisch sind.

So ist z.B. das oft als Benchmark benützte Spiel Quake eines der (leider) wenigen Programme, die einen Assembler-Optimierten Programmcode besitzen. Dieser ist ideal auf den original Pentium optimiert, der optimal ausgenutzt wird. Alle anderen Prozessoren arbeiten diesen Code aufgrund anderer Abarbeitungszeiten der CPU-Befehle weniger effizient ab. Dafür erreicht es schon mit vergleichsweise wenig Hauptspeicher (8 MB) die volle Geschwindigkeit.

Fazit: Mit Benchmarks, die auf einem einzigen Programm basieren, erhält man zwar einen guten Vergleichswert, aber eben auch nur für dieses einzige Programm selbst.

Eine Benchmark-Suite, die aus vielen Programmen zusammengesetzt ist, liefert dagegen schon einen recht guten Vergleichswert. Leider sind die meisten Tests dieser Art Anwendungs-Benchmarks, d.h. deren Werte sind für die Multimedia- und Spieleleistung weniger relevant. Zudem ist die reine Arbeitsleistung des PCs bei Anwendungen weitaus weniger maßgebend als die Ergonomie des Computers (Geräuschentwicklung, Handhabung, Bildqualität,...

Desweiteren gilt der in Testberichten veröffentlichte Wert nur für die Leistung des Bauteils in exakt der gleichen Konfiguration wie der des Test-PCs, in ihrem Rechner kann es jedoch genau andersherum sein.
Tests von Komplett-PCs sind auch nur beschränkt gültig, da sich deren Bauteile oft in kurzer Zeit ändern.

Zudem erkennen die meisten Benchmarks folgende Situation nicht:
Nehmen wir an, auf PC Nr.1 läuft ein Programm mit einer bestimmten Geschwindigkeit, und zwar recht flüssig. PC Nr.2 schafft die dreifache Geschwindigkeit, macht aber hin und wieder eine deutlich erkennbare Pause (z.B. wenn Hauptspeicher auf die Festplatte ausgelagert wird).
Laut Benchmark wird der zweite schneller sein, aber der erste wird, auf das was es ankommt -egal ob beim Arbeiten oder beim Spielen-, deutlich angenehmer zu benützen sein.

Als ob das nicht genug ist: Manipulation leichtgemacht

Da sich die (Benchmark-)Leistung auch auf den Gewinn einer Firma auswirkt, kann man durchaus in Versuchung kommen, den Ergebnissen nachzuhelfen. Eine kleine Auswahl davon:

Die plumpe Methode:

Der Treiber enthält Programmcode, mit dem die wichtigsten Benchmarks anhand bestimmter Muster des BENCHMARKS erkannt werden. Läuft ein erkannter Benchmark, so täuscht der Treiber die Abarbeitung seiner Funktionen nur vor, anstatt sie auszuführen. Es ist eindeutig, daß in diesem Fall die Geschwindigkeit angeblich enorm hoch ist.
Mein Urteil: BETRUG!!!

Die nicht ganz so plumpe Methode:

Man schreibt die Treiber so, daß sie genau auf gewisse Benchmarks optimiert sind. Man erhält zwar einen echten Meßwert, nimmt aber in Kauf, daß der Treiber bei den meisten Anwendungen langsamer als möglich ist.
Mein Urteil: Der Anwender zieht den kürzeren.

Die intelligente Methode:

Wer kennt ein Produkt am besten? Ganz klar, der Hersteller selber. Warum nicht also selber einen Benchmark herausgeben? Den stopft man dann mit Funktionen voll, die das eigene Produkt am besten kann, während man die Funktionen, die weniger gut laufen, wegläßt. Die bekanntesten Vertreter dieser Sorte sind der VillageMark (optimiert für die PowerVR/Kyro-Chips) und auf Geforce-Karten ausgerichtete Demos von nVidia.
Siehe auch: Meine Idee einer solchen Implementierung

Mein Urteil: Brauchbar, aber nicht das Maß aller Dinge.

Benchmarks sinnvoll genützt

Die Meßergebnisse sind ja nicht alles. So liefern einige Tests eine Übersicht über die vorhandenen Zusatzfunktionen der Hard- und Software. Auch zum Erkennen von Engpässen im System sind sie brauchbar, ebenso beim Feintuning.

Aufwendige 3D-Grafikbenchmarks sind ideale Tests für die DirectX / OpenGL - Treiberkonfiguration sowie die Systemstabilität: Laufen sie nicht durch, so sollte man sein System doch noch mal nacharbeiten, das RAM-Timing und/oder die Treiber nachbessern.
Auch sind sie ganz nett anzuschauen: so erinnert in Final Reality die letzte Szene an den Klassiker Second Reality der FutureCrew, und wer den Film Matrix gesehen hat sollte sich den 3DMark2001 anschauen... :-)

Eine kleine Auswahl:

Name: Geeignet für: Besonderheiten
Finden von
Engpässen:
Treiber-
/Systemstabilität:
Sieht gut aus:
Axel Folleys BM x     Klein, aber fein
ChipBench 32 xx x   Testet auch Multitaskingleistung
PC Player 3DBench   x x Sehr viele Einstellungsmöglichkeiten für DirectX
3D Mark 99 / 2000 / 2001 / Final Reality   xx xx Aktuellen Spielen/Demos ähnlich

3Dconcept.ch listet noch viele weitere Benchmarks. Auf www.x86.org liegt auch noch ein Text über Benchmarks herum, in dem demonstriert wird wie man durch passende Hardware einen P166 einen PII xxx überholen lassen kann.
Mail an den Autor: webmeister@deinmeister.de

Hauptseite Programmieren Win32Asm Downloads Software Hardware Cartoons+Co Texte Sitemap