Berechnung zur Festplattengeschwindigkeit - seltsame Ergebnisse?
-
Hallo Leute,
mir stellt sich folgende Frage: Schreibt eine Festplatte schneller als sie liest?
Programmablauf C/C++:
(Zeiten im ms werden durch clock() ermittelt)
-Startzeit wird genommen
-1MB wird in Datei geschrieben (fprintf)
-Endzeit wird genommen und die Differenz ermittelt
-Hochrechnung auf eine Sekunde (MB/s)Dieses Verfahren bringt relativ reale Ergebnisse z.B. UDMA5/7200 mit 32-40 MB/s
So ähnlich verläuft der Lesetest, die Daten (1MB) werden aus der Datei mittels fscanf gelesen und die Zeit gemessen, wobei meiner Meinung nach seltsame Ergebnisse errechnet werden z.B. Schreibgeschwindigkeit 14MB/s - Lesegeschwindigkeit 4MB/s, wobei ich denke daß die Lesegeschwindigkeit doch gleich gross, wenn nicht höher als die Schreibgeschwindigkeit sein müßte.
Was meint ihr dazu?
-
Rein theoretisch schon, aber es könnte z.B. sein, dass der Schreib-Prozess die Daten an einem Stück schreiben kann, während der Lese-Prozess von einem Fragment zum anderen springen muss. Aber so eine große Differenz würde das wohl auch wieder nicht ausmachen...
-
Ich habe auch schon versucht die Daten byteweise auszulesen (fgetc), jedoch dauert dieses Verfahren pro MB noch ca 10ms länger. Welche Möglichkeiten gäbe es noch die Datei auszulesen?
-
Die Standard C I/O Funktionen arbeiten mit Buffern. Deswegen misst du gar nicht die effektive I/O-Geschwindigkeit deiner Festplatte.
-
Achso, was wäre nun wenn ich die Puffer auf NULL setze, würde das dasnn funktionieren?
setbuf(stream,NULL)