http://adrianov.livejournal.com/ (
adrianov.livejournal.com) wrote in
useless_faq2008-03-20 07:23 pm
![[identity profile]](https://www.dreamwidth.org/img/silk/identity/openid.png)
![[community profile]](https://www.dreamwidth.org/img/silk/identity/community.png)
Время дефрагментации
Почему программам дефрагментации требуется намного больше времени, чем удвоенное время чтения и последующей записи данных? (Один раз переместить фрагментированные данные в пустое место, другой раз записать на освободившееся место дефрагментированные).
no subject
no subject
хехе
no subject
Когда места на диске достаточно, примерно так и должно происходить по времени. А если место мало, то программе приходится данные по всякому рекомбинировать, и там может быть больше, чем два чтения и две записи.
(no subject)
(no subject)
no subject
во-вторых, данные копируются маленькими кусочками, уходит время на перемещение головок.
no subject
Дополнительное время тратится в основном на проверку правильно ли перезаписаны данные. Поскольку данные читаются из разных мест диска (и головка всё время прыгает туда-сюда), да ещё и не по одному разу, это сильно увеличивает время проверки корректности перезаписи.
Грубо говоря, программа дефрагментации не уверена что в (быстрой) оперативной памяти машины всё абсолютно безглючно и перепроверяет всё по нескольку раз.
no subject
2. Параллельно с дефрагментатором работают другие процессы, которые пишут и читают файлы. Поэтому дефрагментатор не может заранее спланировать, что и куда перемещать, и далее следовать плану. Существующий файл может оказаться непереместимым, изменить размер, на запланированном для него месте может образоваться другой файл.
3. Кроме данных на диске есть служебные записи файловой системы. Правильная программа дефрагментации не удаляет ссылок на старое место хранения данных до тех пор, пока не убедится, что они записаны на новое место. При этом принудительно выключается кэширование.
4. Физическое перемещение головок.
no subject
если вам нужно радикально ускорить процесс - сделайте образ диска ghost'ом или acronis'ом в файл а потом залейте назад. чтение всё-равно намного быстрее не будет (т.к. данные дефрагментированы), а вот запись будет почти потоковой, в разы быстрее
no subject