Консольный инструмент Byenow — ускоряем удаление больших папок в два раза

Даже на быстрых SSD-дисках удаление каталогов может занять довольно много времени, если их содержимое будет представлено множеством небольших файлов. Удаление через Проводник, в том числе с использованием Shift + Del — не самый лучший вариант, поскольку перед удалением, впрочем, как и перед копированием, Windows производит расчет и только потом приступает к основной процедуре. Кто-то наверняка скажет, что в таких случаях можно воспользоваться командой rmdir.

Да, такой способ действительно может ускорить удаление, но и это еще не предел.

Задействовав все возможности многопоточности и NtDeleteFile вместо стандартного API DeleteFile, можно сократить количество системных вызовов и ускорить удаление файлов примерно в два раза. Именно такие механизмы использует бесплатная утилита Byenow.

Скачать ее вы можете с сайта: https://iobureau.com/byenow/

Это консольный инструмент, работает он из командной строки или PowerShell. Распакуйте архив с утилитой и перейдите в консоли в расположение исполняемого файла. Теперь, чтобы удалить папку, вам нужно выполнить команду следующего вида:

byenow.exe [параметры] <путь>

Всего утилитой поддерживается семь ключей:

• -p --preview — выводит содержимое каталога без удаления данных.
• -s --staged — выводит содержимое каталога, а затем удаляет его.
• -1 -- one-liner — показывает прогресс одной строкой.
• -e --list-errors — выводит ошибки по завершении операции, если таковые были.
• -y --yes — подавляет подтверждение удаления вводом Y.
• -t --thread <count> — позволяет указать число потоков.
• -n --delete-ntapi — задействует метод NtDeleteFile вместо стандартного API.

Можно обойтись и без параметров, передав утилите в качестве единственного аргумента только путь к каталогу и подтвердив удаление вводом Y, например, byenow.exe D:\Folder.

Byenow

А теперь самый главный вопрос — насколько действительно эффективнее удаление с помощью Byenow?

Для тестирования мы использовали папку с 20000 вложенными в нее пустыми каталогами, и вот какие получили результаты.

Byenow

При удалении в Проводнике на подсчет содержимого ушло 40 секунд и еще 10 секунд было потрачено на удаление.

Использование стандартной команды rmdir с ключом s позволило сократить время удаления до 19 секунд.

Наконец, время удаления посредством Byenow без параметров составило 14 секунд и с параметром -n --delete-ntapi — 12 с половиной секунд.

Byenow

Пусть это не в два раза быстрее, чем с rmdir, но то что результат оказался в целом положительным, не подлежит сомнению.

Оцените Статью:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *