Почему удаление файлов происходит так медленно?

«Почему удаление файлов происходит так медленно? Мне кажется, сканирование диска должно занимать больше времени, чем удаление мусора.» — именно с таким вопросом обратился в службу поддержки один из пользователей The Mop. Попробуем ответить на этот вопрос.

Когда производится сканирование, программа может запросить чтение содержимого папки. При этом диск физически будет прочитан один раз (хотя информация в программу будет передаваться порциями). При удалении файлов количество запросов равно количеству удаляемых файлов — и при каждом запросе происходит физическое обращение к диску. Кроме того, когда The Mop читает содержимое папки, совершенно не важно, где физически лежат эти файлы (на какой стороне диска, какой дорожке и каком секторе). Когда происходит удаление файла, Windows должна, во-первых, очистить запись в самой папке, а, во-вторых, должна отметить освободившееся место на «карте» диска (это такая специальная область, которая называется FAT или MFT). Если удаление производится в Корзину, то обращений к диску будет три — стереть запись из папки, сделать запись в папке «Корзина», поправить «карту».

Теперь просто посчитаем. Допустим, в папке 1000 мусорных файлов. При сканировании произойдет одно обращение к диску, при удалении — 2000 (две тысячи). Естественно, что операции оптимизируются и на уровне The Mop, и на уровне Windows, но в целом процесс удаления получается более длительным — не в две тысячи раз, но раз в десять — вполне нормально.
комментарии # 15-07-2012 12:22, The Mop Team

Оставить комментарий к «Почему удаление файлов происходит так медленно?»