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)


Anmelden zum Antworten