Mainboards, BIOS, Prozessoren, RAM 27.265 Themen, 123.628 Beiträge

Wie schnell ist RAM bei kleinen Dateien?

Sovebämse / 19 Antworten / Flachansicht Nickles

Hallo zusammen

Da ja das Problem auch heute noch besteht, dass beim Lesen / Zugriff auf viele kleinere Dateien (wie z. B. beim Windows-Start etc.) selbst bei den SSDs noch eine riesige Diskrepanz herrscht zum Lesen grosser Dateien (Leistung im unteren einstelligen Prozentbereich, konkret so um 50 MB/s), wollte ich mal fragen, ob es diese krasse Diskrepanz eigentlich auch beim RAM gibt.

Zudem die Frage: Wird es in Zukunft mal möglich sein, das Lesen kleiner Dateien fast so schnell hinzukriegen wie das Lesen grosser Dateien? Was bräuchte es dazu noch und wie weit ist man schon auf dem Weg? Nehme an, da reden wir dan schon über den Quantencomputer bzw. diese Ebene der Technik.

Gruss und Dank
Thomas

bei Antwort benachrichtigen
Borlander Sovebämse „Wie schnell ist RAM bei kleinen Dateien?“
Optionen
Zudem die Frage: Wird es in Zukunft mal möglich sein, das Lesen kleiner Dateien fast so schnell hinzukriegen wie das Lesen grosser Dateien?

Ziemlich sicher nicht. Und vor allem nicht in Form eines universellen Dateisystems. Für Anwendungen wie den Start eines Betriebssystems könnte man ggf. durch Einsatz von für diesen Einsatzzweck optimierten Speicherabbildern (die dann als eine große Datei im Dateisystem liegen) ein bisschen mehr Leistung rauskitzeln, wird dafür dann aber vorher wesentlich mehr Zeit zur Optimierung investieren müssen.

Jetzt versuchen wir das ganze noch noch mal etwas zu quantifizieren:

Lesegeschwindigkeit[B/s] := Dateigröße[B] / Gesamtlesedauer[s]

Die gesamte Lesedauer beschränkt sich nun aber nicht nur auf die Inhalte, sondern umfasst auch noch den Zeitbedarf für den Zugriff (was offensichtlich mindestens so lange dauern wird wie das Lesen der entsprechenden Organisationsstrukturen) selbst. D.h.:

Gesamtlesedauer[s] := Zugriffsdauer[s] + Inhaltslesedauer[s].

Die Zugriffsdauer ist fast (bzw. wächst zumindest um Größenordnungen langsamer als die Dateigröße) unabhängig von der Dateigröße. Für große Dateien können wir dann

Zugriffsdauer << Inhaltslesedauer

annehmen (und somit gilt Lesegeschwindigkeit[B/s] ~ Dateigröße[B] / Inhaltslesedauer[s] ), aber für kleine Dateien kann das sogar in Richtung

Zugriffsdauer >> Inhaltslesedauer

gehen und fällt die Lesegeschwindigkeit am Ende eher enttäuschend aus. Wobei bei kleinen Datenmengen u.A. durch das Warten und Caching der Zeitbedarf relativ höher ausfällt.

bei Antwort benachrichtigen