Löschen am Anfang schneller

Hallo,

jeder kennt bestimmt den Effekt, dass z.B. beim herunterladen einer Datei die ersten paar Prozent am schnellsten gehen, bzw. sofort da sind. Ich habe das bislang für ungenau Fortschrittsanzeigen gehalten, jetzt ist mir aber etwas ähnliches bei einem Programm von mir passiert:

Das Programm überschreibt eine Datei/ein Device mit Nullen und gibt dabei den Fortschritt aus.
Jetzt habe ich eine rund 550MB Datei auf einer internen Festplatte überschrieben und ca. 15 Sekunden gebraucht. Dabei ist mir aufgefallen, dass die ersten 30% immer sofort „da“ sind. Also habe ich spaßeshalber den Vorgang immer sofort nach dem Starten unterbrochen und das Programm neu gestartet mit der Aufforderung am letzten Abbruchpunkt weiterzumachen.
Das Ergebnis: Insgesamt hat es nur etwa 5 Sekunden gedauert die Datei zu überschreiben und es ist tatsächlich keine Information zurückgeblieben.

Kann mir das jemand erklären?

Hallo!
Einen Zusammenhang zwischen Downloadverlauf und dem Löschen der Datei halte ich erst mal für sehr unwahrscheinlich. Der limitierende Faktor beim Download ist die Netzwerkbandbreite, beim Löschen der Datei aber der Festplattenzugriff, der um mehrere Größenordnungen selbst über der schnellsten Gigabitanbindung liegt.

Die Erklärung für den beobachteten Effekt ist vermutlich ganz einfach: Das Zauberwort lautet „Caching“. Wenn eine Anwendung irgendwas mit einer Datei machen will, holt sich das Betriebssystem nicht jedes Bit einzeln von der Festplatte, sondern geht davon aus, dass mit einem größeren Bereich der Datei was gemacht wird. Darum wird gleich ein ganzer Bereich der Datei gelesen und in einem Zwischenspeicher (im RAM) abgelegt. Will die Anwendung dann tatsächlich darauf zugreifen, erfolgt dieser Zugriff rasend schnell (weil es ja nur im Hauptspeicher erfolgt und nicht auf der - vergleichsweise langsamen - Festplatte).
Schreiben in die Datei ist ähnlich - erst wird in den Cache geschrieben und dann - zeitversetzt - erst auf das physikalische Medium.
Das ist auch der Grund, warum es zu Datenverlust kommen kann, wenn man einen Rechner einfach ausschaltet: Das Betriebssystem hatte u.U. noch keine Zeit, die Daten aus dem Cache auf die FP zurückzuschreiben.

Gruß,
Martin

Danke, da hätte ich auch drauf kommen können.

Ich meinte übrigens auch garnicht, dass es einen Zusammenhang zwischen Herunterladen und Löschen gibt, nur beim Downloaden ist mir der Effekt geläufiger.