12Aug
Већину времена, вредности за 'Величина' и 'Величина на диску' биће веома близу усклађивању приликом провере величине фасцикле или датотеке, али шта ако постоји велика разлика између ова два?Данашњи СуперУсер К & амп; А пост гледа на одговор на овај конфузни проблем.
Данашње питање & амп;Сесија одговора долази нам захваљујући СуперУсер-у подскупу Стацк Екцханге-а, групације К & ама;
Питање
читач СуперУсер тхеластблацк жели да зна зашто постоји велика разлика између "Величина" и "Величина на диску" за фасциклу на СД картици свог телефона:
Као што можете видети доле, постоји толико разлика измеђуПоље "Величина" и "Величина на диску" за ову фасциклу.Зашто је то?
Знам да би "Величина на диску" требало да буде мало више од "Величина" због јединица за додељивање у Виндовсу, али зашто постоји толико разлика?Да ли то може бити због великог броја датотека?
БТВ, овај фолдер је на СД картици за Андроид телефон.Унутар овога, моја апликација за мапе чува своје кеширане мапе, а апликација добија своје мапе из Гоогле мапа.
Гледајући на снимак екрана, дефинитивно постоји огромна разлика између 'Величина' и 'Величина на диску', па шта се десило овде да би се ово догодило?
Одзив
СуперУсер допринос Боб има одговор за нас:
Претпостављам да користите ФАТ / ФАТ32 систем датотека овде, пошто помињете да је ово СД картица.НТФС и екФАТ се понашају слично у односу на јединице за доделу.Други системи датотека могу бити различити, али они уопште нису подржани у оперативном систему Виндовс.
Ако имате много малих датотека, то је сигурно могуће.Размислите о следећем:
- 50,000 датотека
- Величина 32 КБ кластера( јединица за додељивање), што је максимум за ФАТ32
Ок, сада је минимални простор 50,000 * 32,000 = 1,6 ГБ( помоћу СИ префикса, не бинарних, да бисте поједноставилиматематика).Простор који свака датотека узима на диску је увек вишеструка од величине јединице алокације - и овде претпостављамо да је свака датотека довољно мала да се уклапа у једну јединицу, са неким( заосталим) простором.
Ако је свака датотека у просеку била 2 КБ, добићете око 100 МБ укупно - али такође трошите 15 пута тај( 30 КБ по фајлу) у просјеку због величине јединице алокације.
Објашњење у дубини
Зашто се ово догодило?Па, фајл систем ФАТ32 мора да прати где се свака датотека чува.Ако би требало да одржава листу сваког појединачног бајта, табела( као адресар) би се повећала са истом брзином као и подаци - и трошила доста простора.Значи, они користе "јединице за расподелу", такође познате као "величина кластера".Обим је подељен на ове јединице за доделу, а што се тиче датотечног система, оне се не могу подијелити - то су најмањи блокови на које се може ријешити.Слично као што имате број куће, али ваш поштар не занима колико соба имате или који живи у њима.
Дакле, шта се дешава ако имате веома малу датотеку?Па, у датотечни систем није брига ако је датотека 0 КБ, 2 КБ или чак 15 КБ, то ће му дати најмање простора који може - у горе наведеном примеру, то је 32 КБ.Ваша датотека користи само малу количину овог простора, а остатак је у основи изгубљен, али и даље припада датотеци - слично као спаваћа соба коју оставите ненасељеним.
Зашто постоје различите величине јединица алата?Па, постаје компромит између веће табеле( адресар, на пример, каже да је Јохн власник куће у улици 123 Факе Стреет, 124 Факе Стреет, 666 Сатан Лане итд.), Или више потрошеног простора у свакој јединици( кући).Ако имате веће датотеке, корисније је користити веће алокацијске јединице - јер датотека не добија нову јединицу( кућа) све док се не попуне сви други.Ако имате пуно малих датотека, добро, имат ћете велики стол( адресар) у сваком случају, тако да им можете дати и мале јединице( куће).
Велике јединице за доделу, као опште правило, ће трошити доста простора ако имате пуно малих датотека.Обично није добар разлог да се изнад 4 КБ користи за општу употребу.
фрагментација?
Што се тиче фрагментације, фрагментација не сме расипати простор на овај начин.Велике датотеке могу бити фрагментиране, тј. Подељене на више јединица за додјелу, али свака јединица треба попунити прије него што се започне сљедеће.Дефрагментирање може уштедити мало простора у табели расподеле, али ово није ваше специфично питање.
Могућа решења
Као што је предложио гладиатор2345, ваше једине реалне опције у овом тренутку су да живите са њом или реформирате са мањим алокацијама.
Ваша картица може бити форматирана у ФАТ16, која има мањи лимит на величини таблице и због тога захтева много веће алокацијске јединице како би адресирала већи волумен( са горњом границом од 2 ГБ са 32 КБ јединицама за доделу).Извор љубазности Браиам-а.Ако је то случај, у сваком случају би требало да будете сигурни да форматирате као ФАТ32.
Имате ли нешто да додате објашњењу?Звучи у коментарима.Желите да прочитате више одговора од других корисничких корисника Стацк Екцханге?Овде погледајте комплетну тему.