12Aug

Prečo je veľký rozdiel medzi veľkosťou a veľkosťou na disku?

click fraud protection

Väčšinu času sú hodnoty pre veľkosť a veľkosť na disku veľmi blízke porovnaniu pri kontrole veľkosti priečinka alebo súboru, ale čo keď medzi oboma existujú obrovské rozdiely? Dnešný príspevok SuperUser Q & A sa zameriava na odpoveď na tento problém.

Dnešná otázka &Odpoveď na zasadnutie nám príde s láskavým dovolením SuperUser - subdivíziu Stack Exchange, komunitne riadeného zoskupenia webových stránok Q & A.

Otázka

SuperUser čítačka thelastblack chce vedieť, prečo existuje taký obrovský rozdiel medzi veľkosťou a veľkosťou na disku pre priečinok na SD karte svojho telefónu:

Ako vidíte nižšie, existuje toľko rozdielov medziVeľkosť 'a' Veľkosť na disku 'pre túto zložku. Prečo to je?

Viem, že veľkosť na disku by mala byť trochu viac ako "veľkosť" kvôli alokačným jednotkám v systéme Windows, ale prečo je tam taký veľký rozdiel? Mohla by to byť kvôli veľkému počtu súborov?

BTW, tento priečinok je na SD karte na telefóne Android. V aplikácii Moje mapy sa v nej nachádzajú mapy uložené vo vyrovnávacej pamäti a aplikácia dostane svoje mapy z Máp Google.

instagram viewer

Pri pohľade na snímku obrazovky existuje určite obrovský rozdiel medzi veľkosťou a veľkosťou na disku, takže čo sa tu stalo, spôsobilo to?

Odpoveď

SuperUser prispievateľ Bob má odpoveď pre nás:

Predpokladám, že tu používate súborový systém FAT / FAT32, pretože ste uviedli, že ide o SD kartu. NTFS a exFAT sa správajú podobne aj v súvislosti s alokačnými jednotkami. Ostatné systémy súborov môžu byť iné, ale v systéme Windows nie sú podporované.

Ak máte veľa malých súborov, je to určite možné.Zoberme si to takto:

  • 50 000 súborov
  • 32 KB veľkosť klastra( alokačných jednotiek), čo je maximálna hodnota pre FAT32

Ok, teraz minimálny priestor je 50 000 * 32 000 = 1,6 GB( pomocou predpony SI, nie binárne,matematika).Priestor každého súboru na disk je vždy násobkom veľkosti alokačnej jednotky - a tu predpokladáme, že každý súbor je skutočne dostatočne malý na to, aby sa zmestil do jednej jednotky, pričom zostal určitý( zbytočný) priestor.

Ak by bol každý súbor v priemere 2 KB, získali by ste asi 100 MB celkom - ale v dôsledku veľkosti alokačnej jednotky tiež stratíte 15x( 30 KB za súbor).Vysvetlenie

v hĺbke

Prečo sa to deje? No, súborový systém FAT32 musí sledovať, kde je uložený každý súbor. Ak by mal zostať zoznam každého jednotlivého bajtu, tabuľka( ako adresár) by rástla rovnakou rýchlosťou ako dáta - a strácať veľa priestoru. Takže to, čo robia, je používať "alokačné jednotky", známe aj ako "veľkosť klastra".Hlasitosť je rozdelená na tieto alokačné jednotky a pokiaľ ide o súborový systém, nemožno ich rozdeliť - to sú tie najmenšie bloky, ktoré môžu riešiť.Rovnako ako máte číslo domu, ale váš poštár sa nestará, koľko izieb máte alebo kto žije v nich.

Takže čo sa stane, ak máte veľmi malý súbor? No súborový systém nezáleží na tom, či je súbor 0 KB, 2 KB alebo dokonca 15 KB, dá mu to najmenší priestor - v príklade vyššie, to je 32 KB.Váš súbor používa len malé množstvo tohto priestoru a zvyšok je v podstate plytvaný, ale stále patrí do súboru - podobne ako spálňa, ktorú necháte neobývanú.

Prečo existujú rozdielne veľkosti prideľovacích jednotiek? No, stáva sa kompromisom medzi väčším stolom( adresár, napríklad hovorí, že John vlastní dom na 123 Fake Street, 124 Fake Street, 666 Satan Lane atď.) Alebo viac zbytočného priestoru v každej jednotke( dome),Ak máte väčšie súbory, dáva väčší zmysel používať väčšie alokačné jednotky - pretože súbor neobsahuje novú jednotku( dom), kým sa všetky ostatné nevyplnia. Ak máte veľa malých súborov, tak aj tak budete mať veľký stôl( adresár), takže im môžete dať aj malé jednotky( domy).

Veľké prideľovacie jednotky spravidla strácajú veľa priestoru, ak máte veľa malých súborov. Tam zvyčajne nie je dobrý dôvod ísť nad 4 KB pre všeobecné použitie. Fragmentácia

?

Pokiaľ ide o roztrieštenosť, roztrieštenosť by nemala plytvať priestorom týmto spôsobom. Veľké súbory môžu byť roztrieštené, t.j. rozdelené do viacerých alokačných jednotiek, ale každá jednotka by mala byť vyplnená skôr, ako sa začne ďalšia. Defragmentácia môže ušetriť malý priestor v alokačných tabuľkách, ale toto nie je vaša špecifická záležitosť.

Možné riešenia

Ako navrhol gladiator2345, vaše jediné skutočné možnosti v tomto bode je žiť s ním alebo preformátovať s menšou alokačnou jednotkou.

Vaša karta môže byť naformátovaná v systéme FAT16, ktorý má menší limit na veľkosť tabuľky a preto vyžaduje oveľa väčšie alokačné jednotky, aby riešil väčší objem( s hornou hranicou 2 GB s 32 kB priradenými jednotkami).Zdrojom zdvorilosti od spoločnosti Braiam. Ak je to tak, mali by ste byť schopní bezpečne formátovať ako FAT32.

Musíte niečo doplniť k vysvetleniu? Znížte komentáre. Chcete si prečítať viac odpovedí od iných používateľov technológie Stack Exchange? Pozrite sa na celý diskusný príspevok tu.