Dlaczego szybkość usuwania w systemie Windows często jest okresowa?

13

Po prostu z braku zainteresowania, jaki jest powód, dla którego czasy usuwania często są okresowe? W systemie Windows 8 okno dialogowe usuwania pokazuje szybkość usuwania na diagramie.

Okno dialogowe usuwania systemu Windows 8

Jeśli nie ma powodu, oczywiście to też byłaby odpowiedź.

danijar
źródło
4
masz 100 000 plików w folderze, wszystkie mają różne rozmiary, pomiar wynosi Rzeczy na sekundę, więc im mniejsze elementy, tym szybciej zostaną usunięte.
Ramhound,
3
@Ramhound, Wygląda na to, że nie ma to związku z różnym rozmiarem pliku. Sinusoidalny charakter wykresu jest zbyt regularny.
GaTechThomas,
1
System Windows nie zeruje zajętych bloków podczas usuwania plików. Usunięcie dużego pliku nie powinno zająć dłużej niż usunięcie małego pliku. Sprawcą jest większa liczba przedmiotów. Czy są w wielu podfolderach? W przypadku wielu plików (dużych lub małych) powstaje znaczny narzut - niezależnie od tego, czy usuwasz, kopiujesz czy przenosisz.
abstrask
2
Jakieś buforowanie? Kilka żądań usunięcia zostaje opróżnionych na szczytach wykresu?
Jesse Slicer,
1
Też to widziałem, czasem z dużo większymi falami.
Moshe Katz,

Odpowiedzi:

5

Jest kilka powodów:

  1. Ciągłość danych: NTFS jest implementowany tam, gdzie zapisuje sekwencyjnie na dysku, więc jeśli edytujesz plik - NTFS może być zmuszony do przechowywania zmian w nieciągłym sektorze na dysku twardym. Oznacza to, że aby usunąć plik, może być konieczne przejście z sektora 2 do sektora 100 000 (oczywiście hipotetycznie), a następnie powrót do końca pliku. Następnie znajduje następny sektor następnego pliku do usunięcia i ponownie może powtórzyć ten proces.

  2. Typy danych: powiedzmy, że usuwasz folder temp, może on zawierać duże pliki i małe pliki. Niektóre z nich będą szybko przetwarzane, a inne mogą być wolniejsze (niezależnie od tego, czy jest to rozmiar, czy złożoność danych - tj. Ile sektorów należy przetworzyć, aby ukończyć „element”)

  3. @Ramhound wspomniał o kawałku „przedmiotów na sekundę”, co wydaje się potwierdzone przez okno dialogowe usuwania ( Speed: 1.082 items/s). Tak więc usunięcie dużego pliku, pliku nieciągłego lub małego pliku odgrywa rolę w liczbie elementów na sekundę.

  4. Priorytetyzacja procesora: Te rzeczy są wykonywane w cyklach taktowania, więc prawdopodobne jest, że procesor może wykonywać inne procesy w trakcie cyklu i może to wpływać na szybkość (jest to przypuszczenie z mojej strony)

nerdwaller
źródło
3
Windows / NTFS nie zeruje zajętych bloków podczas usuwania plików. Duże lub małe, przylegające lub nieprzylegające nie ma znaczenia.
abstrask
@abstrask - Nie powiedziałem, że nic nie wyzeruje . Musi jednak przeskakiwać $BitMap(plik) do każdego klastra i oznaczać go jako wolny do użycia (tzn. „Usunięty”). Otwieranie i edytowanie pliku (na dowolnym poziomie) wymaga zasobów, a przeskakiwanie w nim zajmuje dużo miejsca i może całkowicie spowolnić. Jeśli plik jest duży - edycja trwa dłużej, jeśli plik nie jest ciągły - wyszukiwanie zajmuje trochę więcej czasu.
nerdwaller
1
Każdy klaster jest reprezentowany przez bit w pliku $ Bitmap. Zakładając, że domyślny rozmiar jednostki alokacji wynosi 4 KB, odniesienie alokacji dla pliku 100 KB stanowi około 3 bajtów w pliku $ Bitmap. Duży plik, powiedzmy 1 GB, zajmuje 32 KB w pliku $ Bitmap. Nawet jeśli $ Bitmap był mocno rozdrobniony, dysk twardy musiałby przeskakiwać między 32 KB / 4 KB / klaster = 8 klastrów, aby oznaczyć klastry pliku 1 GB do usunięcia. Tak, więcej bitów musi zostać odwróconych, aby usunąć duży plik, ale jest to trudne do zmierzenia i na pewno nie spowodowałoby dużych wizualnych nierówności pokazanych na zrzucie ekranu.
abstrask 10.08.13