Jaka jest różnica między rozmiarem a rozmiarem na dysku?

83

Patrząc na właściwości pliku Windows, otrzymuję dwa atrybuty: „Rozmiar” i „Rozmiar na dysku”, a „Rozmiar na dysku” jest zawsze większy.

Co oznaczają te dwa wskaźniki?

Gavin Miller
źródło
1
Nie jestem tego w 100% pewien, ale uważam, że skompresowane pliki mają również wpływ na te pomiary.
AdminAlive,
2
„Rozmiar na dysku” nie zawsze jest większy. Małe pliki są przechowywane bezpośrednio na MFT i będą miały rozmiar na dysku = 0 . Pliki skompresowane często mają również mniejszy rozmiar na dysku. To samo z rzadkimi plikami
phuclv

Odpowiedzi:

78

Rozmiar to rzeczywisty rozmiar pliku w bajtach.

Rozmiar na dysku to faktyczna ilość miejsca zajmowanego na dysku. Różnią się, ponieważ dysk jest podzielony na ścieżki i sektory i może przydzielać bloki o dyskretnej wielkości.

Redagowanie

Aby uzyskać bardziej szczegółowe wyjaśnienie, zobacz ten tekst, który skopiowałem z innej witryny:

Wiemy, że dysk składa się ze ścieżek i sektorów. W systemie Windows oznacza to, że system operacyjny przydziela miejsce na pliki w „klastrach” lub „jednostkach alokacji”.

Rozmiar klastra może się różnić, ale typowe zakresy wynoszą od 512 bajtów do 32 KB lub więcej. Na przykład na moim dysku C: \ jednostka alokacji wynosi 4096 bajtów. Oznacza to, że Windows przydzieli 4096 bajtów dla dowolnego pliku lub części pliku o długości od 1 do 4096 bajtów.

Jeśli mam plik o wielkości 17 KB (kilobajty), rozmiar na dysku wynosiłby 20,48 KB (lub 20480 bajtów). Obliczenia wyniosłyby 4096 (1 jednostka alokacji) x 5 = 20480 bajtów. Przechowywanie pliku 17 KB zajmuje 5 jednostek alokacji.

Innym przykładem może być plik o rozmiarze 2000 bajtów. Rozmiar pliku na dysku wynosiłby 4096 bajtów. Powodem jest to, że chociaż cały plik mieści się w jednej jednostce alokacji, nadal zajmuje 4096 miejsca (jednej jednostki alokacji) na dysku (tylko jeden plik może korzystać z jednostki alokacji i nie może być współużytkowany z innymi plikami).

Rozmiar na dysku to miejsce wszystkich sektorów, w których plik jest zapisany. Oznacza to, że zwykle rozmiar dysku jest zawsze większy niż rozmiar rzeczywisty.

Tak więc rzeczywisty rozmiar pliku (-ów) lub folderów należy zawsze brać z wartości Rozmiar podczas przeglądania okna właściwości.

Źródło: Jaka jest różnica między rozmiarem a rozmiarem na dysku we właściwościach folderów systemu Windows .

Am1rr3zA
źródło
1
Czy powinienem więc spojrzeć na „rozmiar” lub „rozmiar na dysku”, gdy chcę porównać procentowy udział folderu w porównaniu z całkowitą wartością bieżącej partycji?
programista Androida
1
Rozmiar @androiddeveloper na dysku to
Am1rr3zA
Ok dziękuję. Zastanawiam się, dlaczego nie wyjaśnili tego tam ani nie przedstawili trochę lepszego opisu.
programista Androida
5
Poniższa odpowiedź firmy Synetech dodaje ważne (i potencjalnie mylące) punkty na temat linków Kompresja i Twarde, które mogą prowadzić do Rozmiaru dysku mniejszego niż Rozmiar.
Owen Blacker
1
@baroquedub Ty może mieć ogromną różnicę między dwoma (jak czynnik x1000 w swoim przykładzie). Ta różnica może się zdarzyć, zwłaszcza jeśli jest wiele małych plików (zasadniczo dlatego, że pliki są zapisywane jako „bloki” na dysku, więc zostanie pobrany co najmniej cały rozmiar jednego bloku. Rzeczywisty rozmiar bloku zależy od pliku- system, więc rozmiar pobieranego dysku może być różny na różnych dyskach
Pacopaco
23

Ma to związek z rozmiarami jednostek alokacji używanych na dysku podczas jego pierwszego sformatowania.

Wyobraź sobie, że masz dwa puszki gazu o pojemności 2 x 10 galonów w samochodzie. Każda puszka gazu jest jednostką alokacji. Musisz zdobyć 12 galonów gazu, więc musisz użyć obu puszek. Zasadniczo zużywa 20 galonów przydzielonej przestrzeni - ale tylko wypełnia 12 galonów.

Oto domyślny rozmiar systemu Windows XP

 Drive size   
 (logical volume)             Cluster size          Sectors   
 ----------------------------------------------------------
 512 MB or less               512 bytes             1
 513 MB - 1,024 MB (1 GB)     1,024 bytes (1 KB)    2 
 1,025 MB - 2,048 MB (2 GB)   2,048 bytes (2 KB)    4
 2,049 MB and larger          4,096 bytes (4 KB)    8

Jeśli myślisz o wielkości klastra jako o każdej swojej puszce z gazem: Trzymaj 4KB „gazu” każdy. Ale plik ma rozmiar 2 KB, a następnie rozmiar wypełnienia to 2 KB, ale rozmiar na dysku to 4KB

Holmes
źródło
6
Pozwól mi dodać do twojej odpowiedzi. Rozmiar jednostki alokacji (segmentu) jest wybierany na podstawie rozmiaru dysku. Jeśli używasz wiadra do opróżnienia wanny, wybrałbyś małe wiadro. Jeśli opróżniasz basen, użyjesz większego wiadra.
Les
13

Clack Slack Space

Nie można uzyskać dostępu do każdego pojedynczego bajtu na nośniku pamięci osobno. Byłoby to bardzo nieefektywne, ponieważ system potrzebuje jakiegoś sposobu śledzenia, które są używane, a które są wolne (tj. Lista), więc zrobienie tego dla każdego bajtu osobno spowodowałoby zbyt wiele podsłuchów (dla każdego pojedynczego bajtu, tj. 1 do 1, lista byłaby tak duża jak samo medium!)

Zamiast tego medium jest podzielone na części, bloki, jednostki, grupy, jakkolwiek chcesz je nazwać (terminem technicznym są klastry ), z których każdy zawiera „spójną” liczbę bajtów (zazwyczaj możesz określić rozmiar klastry, ponieważ różne zastosowania wymagają różnych rozmiarów w celu zmniejszenia ilości odpadów).

Gdy plik jest zapisywany na dysku, rozmiar pliku jest dzielony przez rozmiar klastra i w razie potrzeby zaokrąglany w górę . Oznacza to, że jeśli rozmiar pliku nie jest dokładnie podzielny przez rozmiar klastra, część klastra ostatecznie nie jest używana, a zatem marnowana.

Kiedy przeglądasz właściwości pliku, widzisz prawdziwy rozmiar pliku, a także rozmiar, jaki zajmuje on na dysku, który zawiera wszelkie „ luz ”, czyli „niewykorzystane” porady dotyczące klastra. Zwykle nie jest to zbyt wiele na plik, a rozmiar na dysku będzie zwykle prawie równy rzeczywistemu rozmiarowi, ale gdy dodasz zmarnowane miejsce ze wszystkich tysięcy plików na dysku, mogą się sumować. Dlatego podczas przeglądania rozmiaru dużego folderu, zwłaszcza tego z wieloma małymi plikami, które są mniejsze niż klaster, rozmiar na dysku (tj. Ilość miejsca na dysku oznaczona jako wykorzystana) może być znacznie większa niż rzeczywista rozmiar (tzn. ilość miejsca, której faktycznie wymagają pliki).

W powyższym przypadku możesz spróbować zmniejszyć rozmiar klastra, aby każdy plik marnował mniej miejsca. Zasadniczo dysk z większością utraconych małych plików powinien używać najmniejszego możliwego rozmiaru klastra (w celu zmniejszenia marnotrawstwa), a dysk z większością dużych plików powinien używać największego możliwego rozmiaru klastra (w ten sposób struktury księgowe mogą być mniejsze).

Nawet na niższym poziomie, jeśli każdy klaster jest tylko jednym sektorem , chyba że plik jest dokładną wielokrotnością wielkości sektorów na dysku (zwykle 512 bajtów tradycyjnie, teraz często 4096 z dyskami zaawansowanego formatu ), to nadal będzie być niewykorzystanym miejscem między końcem pliku a końcem sektora.

Kompresja

Innym scenariuszem, w którym można zobaczyć różnicę między rzeczywistym rozmiarem pliku a rozmiarem na dysku, jest kompresja. Kiedy dysk jest skompresowany (np. Przy użyciu DriveSpace , kompresji NTFS itp.), Wówczas będzie różnica między rozmiarem rzeczywistego pliku (który należy wiedzieć) a faktycznym rozmiarem, jaki zajmuje plik (tzn. Używa lub „pobiera”) na dysku.

Skróty i twarde linki

Jeszcze inny scenariusz, który może spowodować różnicę, dotyczy linków twardych . W systemach plików obsługujących dowiązania twarde, gdy tworzony jest duplikat pliku, zamiast tworzyć zupełnie nowy plik, który zajmuje miejsce dla siebie, system plików tworzy skrót do pliku, aby oba (lub wszystkie trzy itp.) kopie wskazują na ten sam fizyczny plik na dysku. Dlatego, gdy istnieją dwa pliki wskazujące na te same dane, każdy z nich ma ten sam rozmiar, ale zajmuje tylko nieco więcej niż miejsce do przechowywania pojedynczej kopii.

Synetech
źródło
W rzeczywistości w przypadku jednostek alokacji 1B lista niekoniecznie zajmuje całe medium. Tylko jedna ósma tego rozmiaru. Jest tak, ponieważ potrzebujesz tylko jednego bitu, aby powiedzieć, czy blok jest używany, czy wolny.
flarn2006
Koszty ogólne obejmują również dane wskazujące, że kilka jednostek alokacji należy do tego samego pliku. Jeśli powiesz, że każdy bajt ma inny bit wskazujący, czy dane przepełniają się do następnego bajtu, to rozwiązuje ten problem, ale jest zbyt naiwny dla współczesnego rozmiaru / wydajności dysku, ponieważ jeśli następny bajt nie jest wolny, KAŻDY bajt dysku twardego może wymagać przeniósł. Realistycznie potrzebujesz więcej narzutu, aby określić przesunięcie następnej jednostki alokacji lub przypisać identyfikator pliku do każdej jednostki alokacji.
RetiredAssistant
4

Inną rzeczą, która może znacznie zmniejszyć wartość Rozmiar na dysku, są sytuacje, w których plik nie jest faktycznie przechowywany na dysku, ale nadal jest dostępny za pomocą różnych środków.

Na przykład funkcja plików offline w OneDrive umożliwia użytkownikowi przechowywanie pliku w taki sposób, aby był dostępny za pośrednictwem połączenia internetowego. Plik nadal istnieje na dysku i ma określony rozmiar, ale ponieważ nie znajduje się na dysku, dopóki nie zostanie pobrany, nie zajmuje miejsca.

Okno właściwości folderu OneDrive.  Rozmiar folderu wynosi 171 GB, ale rozmiar dysku to 31,7 GB.

Przykład na folderze wewnątrz ...

Okno właściwości folderu o zmienionej nazwie.  Rozmiar folderu wynosi 379 MB, ale rozmiar na dysku to 0 bajtów.

Justin Krejcha
źródło