В Windows XP 64 я скачал файл размером 1,2 ГБ, и он оказался фрагментированным, как показано на рисунке. К сожалению, перед тем, как сделать снимок из Piriform Defraggler, я дефрагментировал другие файлы, поэтому вы не можете увидеть точное состояние в тот момент, когда файл был записан. Тем не менее, диск все время был почти таким же пустым, как и сейчас (используется 25%), и почти не фрагментирован.
Какой алгоритм распределения блоков использует NTFS? Это выглядит случайным или, возможно, положить его там, где на самом деле стоит головка диска.
ОБНОВИТЬ:
Это то, что произошло сегодня после записи 67 МБ нового файла. Он был разбит на 731 фрагмент, средний размер всего 95 КиБ. Файл использовался, чтобы заполнить некоторые пробелы, но не все, он также не использует огромное непрерывное свободное пространство. Странно, не правда ли?
ОБНОВЛЕНИЕ 2:
В отличие от PC Guru, я действительно не думаю, что Opera является виновником. Я думаю, что (в отличие от Google Chrome) не сообщает Windows ожидаемый размер, однако, есть много случаев, когда это невозможно, и ответственность за то, чтобы справиться с этим, лежит на операционной системе. На следующем рисунке показано, что произошло после нескольких дней, когда я почти ничего не делал с этим разделом - каталог TEMP и все мои данные (за исключением данных, управляемых Windows) находятся в другом месте. Кажется, что сама Windows не использует SetEndOfFile
и ужасно фрагментирует свои собственные файлы (600 фрагментов для пары небольших файлов размером около 40 МБ). Похоже, что NTFS не использует первый доступный сектор, так как снова есть файлы в середине, а также в конце довольно пустого диска (использование 23%), поэтому точный алгоритм до сих пор неизвестен.