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

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

Когда я удаляю большую папку, удерживая клавишу Shift, я вижу следующее использование ЦП:

введите описание изображения здесь

Не все ящики используются. Это неэффективно?

Мне кажется, это легко параллелизуется, через разделяй и властвуй. Я попробовал вручную выбрать и удалить половину вещей, затем другую половину, и это заполнило больше коробок.

Я слышал, что переработка отходов ведет себя по-другому, хотя сам я этого не проверял.

решение1

Современные файловые системы пытаются гарантировать сохранение целостности данных в любое время во время записи. Раньше я слышал, что это называется «атомарной» записью, поскольку она либо завершается успешно, либо не завершается вообще.

За один раз можно отправить на реальный диск только одну команду, игнорируя очереди и кэши диска, а операция удаления будет включать несколько чтений (сканирование каталога и т. д.) и т. д. перед окончательной записью, которая удаляет элемент из дерева каталогов и отмечает пространство как свободное.

В сочетании с современным использованием журналирования (которое позволяет откатывать дисковые задачи назад или вперед в зависимости от того, когда они были прерваны) вполне может оказаться, что узким местом является фактическая очередь задач (чтение/поиск/запись) для контроллера диска.

Перемещение чего-либо в корзину — это просто перемещение папки, гораздо меньше действий, чтобы «удалить» что-либо таким образом, поскольку вы просто изменяете структуру папок, а не отмечаете множество данных как больше не нужные. Хотя, когда вы очищаете корзину, вы снова оказываетесь перед задачей освобождения места на диске.

решение2

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

Этот эффект особенно усиливается при операциях с большим количеством небольших файлов, когда накладные расходы файловой системы превышают размер самих файлов, поэтому их обработка занимает необычно много времени.

Связанный контент