Чому швидкість видалення в Windows часто періодична?


13

Що з цікавості, що є причиною періодичного періоду видалення? У Windows 8 вікно діалогу видалення показує швидкість видалення на діаграмі.

Вікно діалогу про видалення Windows 8

Якщо немає підстав, звичайно, це була б і відповідь.


4
у вас в папці 100 000 файлів, всі вони мають різний розмір, вимірювання - Елементи в секунду, тим чим менше елементів, тим швидше елементи будуть видалені.
Рамхаунд

3
@Ramhound, не здається, що це пов'язано з різним розміром файлу. Синусоїдальний характер графа надто регулярний.
GaTechThomas

1
Windows не скасовує зайняті блоки під час видалення файлів. Видалення великого файлу не повинно зайняти більше часу, ніж видалення маленького. Винуватець, швидше за все, великої кількості предметів. Чи є вони в багатьох папках? Під час роботи з багатьма файлами (великими чи малими) є великі накладні витрати - незалежно від того, видаляєте, копіюєте чи переміщуєте.
абстракск

2
Якесь кешування? Купа запитів на видалення розмивається на вершинах графіка?
Джессі Слікер

1
Я бачив це теж іноді зі значно більшими хвилями.
Моше Кац

Відповіді:


5

Є кілька причин:

  1. Безперервність даних: NTFS реалізується там, де він записує послідовно на диск, тому, якщо ви редагуєте файл - NTFS, можливо, доведеться зберігати зміни у непомітному секторі на вашому жорсткому диску. Це означає, що для видалення файлу може знадобитися перейти з сектора 2 до сектора 100 000 (звичайно гіпотетично), а потім назад, щоб закінчити файл. Потім він знаходить наступний сектор наступного файлу для видалення і знову може повторити цей процес.

  2. Типи даних: Скажімо, ви видаляєте папку temp, вона може містити великі файли та невеликі файли. Деякі з них швидко обробляються, а інші можуть бути повільнішими (чи це розмір чи складність даних - тобто скільки секторів потрібно обробити, щоб закінчити "елемент")

  3. @Ramhound згадав фрагмент "елементи в секунду", який, як видається, підтверджено діалоговим вікном видалення ( Speed: 1.082 items/s). Таким чином, видалення величезного файлу, непоміжного файлу або невеликого файлу - все це відіграє роль у кількості елементів у секунду.

  4. Пріоритетність процесора: Цей матеріал виконується за тактовими циклами, тому ймовірно, що ваш процесор може виконувати інші процеси протягом циклу, і це може вплинути на швидкість (це гіпотеза з мого боку)


3
Windows / NTFS не знімає зайнятих блоків під час видалення файлів. Великі чи малі, суміжні або неспоріднені значення не мають.
абстракс

@abstrask - Я не сказав, що це нічого не робить. Однак, він повинен стрибати навколо $BitMap(файл) до кожного кластеру і позначати його як вільний у використанні (тобто "видалений"). Відкриття та редагування файлу (на будь-якому рівні) вимагає ресурсів, а необхідність стрибати в ньому, це займе накладні витрати і може абсолютно сповільнити вас. Якщо файл великий - редагування займає більше часу, якщо файл не є суміжним - шукати потрібно трохи більше часу.
nerdwaller

1
Кожен кластер представлений бітом у файлі $ Bitmap. Якщо припустити розмір одиниці розподілу за замовчуванням у 4 Кб, посилання на розподіл для файлу розміром 100 КБ становить близько 3 байт у файлі $ Bitmap. Великий файл, скажімо, 1 Гб, займає 32 КБ у файлі $ Bitmap. Навіть якби $ Bitmap був сильно фрагментований, жорсткий диск повинен був би пропустити між 32 КБ / 4 Кб / кластер = 8 кластерів, щоб позначити кластери файлу 1 ГБ для видалення. Так, для видалення великого файлу потрібно перегорнути більше бітів, але це навряд чи можна виміряти і, безумовно, не спричинить великі візуальні удари, показані на скріншоті.
абстракс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.