tecLab-Report

Leseleistung

Mit steigender Schreibleistung sorgen die Hersteller auch gleich für eine höhere Leseperformance der Laufwerke. Auf den bunten Verpackungen werben sie mit 24fach- und sogar 32fach-Geschwindigkeit. In der Praxis werden diese Werte kaum erreicht. Lediglich in den äußeren Bereichen einer CD-ROM liefert das Laufwerk den maximalen Datendurchsatz. Verschwiegen wird oft, dass die hohe Performance nur für gepresste CDs gilt. Bei Lesen von CD-RWs haben viele Laufwerke Probleme mit dem Datendurchsatz und schalten auf eine niedrigere Drehzahl um. Hauptgrund ist wohl der niedrige Reflektionsgrad einer CD-RW. Die Leistungsfähigkeit von Brennern prüfen wir mit den beiden Benchmarks tecCD und tecMark.

tecCD

tecCD arbeitet auf Lowlevel-Ebene und bestimmt die Leseleistung eines Laufwerks möglichst unabhängig vom Betriebssystem. Bevor tecCD den gewünschten Test durchführt, ermittelt er experimentell die Größe des Caches und des Read-ahead-Buffers.

Beim Lesetest untersucht tecCD einen definierten Bereich vom Startsektor bis zum Endsektor; standardmäßig die komplette CD. Der Benchmark ist so eingestellt, dass er die CD beginnend beim Startsektor an 100 Stellen (Sektoren) testet. Der Abstand zwischen den Testpunkten ist immer gleich groß. Der Lesekopf positioniert sich über dem ersten zu lesenden Sektor und liest 2 MByte ein. Den Block kann er entweder am Stück oder Häppchenweise einlesen. Die Lesegeschwindigkeit nimmt dabei abhängig vom Laufwerk von innen nach außen zu. Über die komplette CD ermittelt tecCD so den minimalen, maximalen und durchschnittlichen Datendurchsatz.

Der Seek-Test funktioniert ähnlich. Das Laufwerk erhält den Befehl sich über einzelne Sektoren der CD zu positionieren und liest diese dann ein. Die anzusteuernden Sektoren werden zufällig ausgewählt. Zur Positionierzeit kommt so noch eine Latenzzeit von durchschnittlich einer halben Umdrehung hinzu, bis der angesprungene Sektor eingelesen wird - eine praxisnahe Methode.

tecMark

Der Lesetest von tecMark wird durch die Funktionen ReadFile() realisiert. Der Benchmark liest das komplette Medium ein. Um das typische Verhalten von Applikationen zu berücksichtigen, die nur in den seltensten Fällen größere Datenblöcke lesen, erfolgt der Datentransfer in 8-KByte-Blöcken.