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.
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:
- Low-Level-Tests
- Test einer gewissen Funktionsgruppe (z.B. Coprozessor)
- Test eines gesamten Programmteils
- Test eines gesamten Programms
- Test vieler Programme zusammen, z.B. BapCo etc.
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.