Unter Windows XP 64 habe ich eine 1,2-GB-Datei heruntergeladen und sie wurde fragmentiert, wie das Bild zeigt. Leider habe ich vor dem Erstellen des Schnappschusses von Piriform Defraggler die anderen Dateien defragmentiert, sodass Sie den genauen Status zum Zeitpunkt des Schreibens der Datei nicht sehen können. Die Festplatte war jedoch die ganze Zeit ungefähr so leer wie jetzt (25% verwendet) und kaum fragmentiert.
Welchen Blockzuweisungsalgorithmus verwendet NTFS? Es sieht zufällig aus oder wird dort platziert, wo der Plattenkopf tatsächlich steht.
AKTUALISIEREN:
Dies geschah heute, nachdem 67 MiB einer neuen Datei geschrieben wurden. Es wurde in 731 Fragmente mit einer durchschnittlichen Größe von nur 95 KiB aufgeteilt. Die Datei wurde verwendet, um einige Lücken zu füllen, aber nicht alle. Sie verwendet auch nicht den riesigen durchgehenden freien Speicherplatz. Seltsam, nicht wahr?
UPDATE 2:
Im Gegensatz zu PC Guru glaube ich wirklich nicht, dass Opera der Schuldige ist. Ich denke, dass es (im Gegensatz zu Google Chrome) Windows nicht die erwartete Größe mitteilt. Es gibt jedoch viele Fälle, in denen dies nicht möglich ist und es in der Verantwortung des Betriebssystems liegt, vernünftig damit umzugehen. Das folgende Bild zeigt, was nach ein paar Tagen passiert ist, als ich fast nichts auf dieser Partition getan habe - das TEMP-Verzeichnis und alle meine Daten (mit Ausnahme der von Windows verwalteten) befinden sich an anderer Stelle. Windows selbst scheint SetEndOfFile
seine eigenen Dateien nicht auf schreckliche Weise zu verwenden und zu fragmentieren (600 Fragmente für ein paar kleine Dateien von etwa 40 MB). NTFS scheint nicht den ersten verfügbaren Sektor zu verwenden, da sich wieder Dateien in der Mitte und auch gegen Ende der ziemlich leeren Festplatte befinden (Auslastung 23%).
quelle
Ihr Problem muss mit Opera sein. Ich habe mir gerade eine Reihe von Dateien auf einem sehr vollen und fragmentierten Laufwerk angesehen. Mit Chrome heruntergeladene große Dateien waren alle zusammenhängend.
Dies deutet darauf hin, dass Chrome die Dateigröße zu Beginn des Downloads kannte und NTFS daher die zu erwartende Dateigröße mitteilte. Wenn Sie dies tun, versucht NTFS, eine Datei in einem einzelnen Fragment oder, wenn kein Fragment groß genug ist, in die größten verfügbaren Fragmente zu platzieren. Interessanterweise werden diese Fragmente immer in absteigender Reihenfolge der Größe verwendet, sodass große Dateien, die vom Explorer auf ein fragmentiertes Laufwerk kopiert wurden, über das gesamte Laufwerk springen können.
Wenn das Programm die Dateigröße nicht kennt oder NTFS nicht informiert, sondern nur eine Datei öffnet und sequentielle Daten schreibt, scheint NTFS FAT32 sehr ähnlich zu sein, das einfach beim ersten verfügbaren Cluster (oder) beginnt Der erste, der nach dem letzten in dieser Sitzung zugewiesenen verfügbar ist, verwendet dann alles, was von dort an verfügbar ist. Als Beispiel habe ich ungefähr zur gleichen Zeit CCleaner gebeten, die Registrierung zu scannen, wodurch sie in einer großen txt ".Reg" -Datei gesichert wurde. Diese Datei wurde kurz vor dem Start des Laufwerks gestartet und dann auf 127 verschiedene Fragmente verteilt. Im Gegensatz zu Dateien, die mit dem Explorer kopiert oder mit Chrome heruntergeladen wurden, wurden die Cluster in jeder von mir betrachteten Datei in aufsteigender Reihenfolge zugewiesen.
Für diese Forschung habe ich Winhex verwendet (kostenlose Testversion von Winhex.com erhältlich). Beim Betrachten eines Verzeichniseintrags. Klicken Sie mit der rechten Maustaste auf einen Dateinamen und wählen Sie Position, Cluster auflisten, um eine Liste der von dieser Datei verwendeten Cluster anzuzeigen.
quelle