12Aug

Warum gibt es einen großen Unterschied zwischen "Größe" und "Größe auf der Festplatte"?

Die Werte für "Größe" und "Größe auf der Festplatte" stimmen bei der Überprüfung der Größe eines Ordners oder einer Datei in der Regel sehr gut überein. Was ist jedoch, wenn zwischen beiden eine große Diskrepanz besteht? Der heutige SuperUser Q & A Beitrag betrachtet die Antwort auf dieses verwirrende Problem.

Die heutige Frage &Die Antwortsitzung kommt dank SuperUser, einer Unterteilung von Stack Exchange, einer Community-gesteuerten Gruppierung von Q & A-Websites, zu uns.

Die Frage

SuperUser Leser thelastblack möchte wissen, warum es einen großen Unterschied zwischen 'Größe' und 'Größe auf Platte' für einen Ordner auf der SD-Karte seines Handys gibt:

Wie Sie unten sehen können, gibt es so viele Unterschiede zwischen den'Größe' und 'Größe auf Platte' Felder für diesen Ordner. Warum das?

Ich weiß, dass "Größe auf Platte" etwas mehr als "Größe" sein sollte wegen der Zuordnungseinheiten in Windows, aber warum gibt es so viel Unterschied? Könnte es wegen der großen Anzahl von Dateien sein?

BTW, dieser Ordner ist auf der SD-Karte meines Android-Handys. Darin speichert meine Karten-App die zwischengespeicherten Karten und die App erhält ihre Karten von Google Maps.

Wenn man sich den Screenshot anschaut, gibt es definitiv eine große Diskrepanz zwischen "Größe" und "Größe auf der Festplatte". Was ist also passiert, um dies zu verursachen?

Der Antwort

SuperUser Beitrag Bob hat die Antwort für uns:

Ich gehe davon aus, dass Sie das FAT / FAT32 Dateisystem hier verwenden, da Sie erwähnen, dass dies eine SD-Karte ist. NTFS und exFAT verhalten sich in Bezug auf Zuordnungseinheiten ähnlich. Andere Dateisysteme sind möglicherweise anders, werden jedoch unter Windows nicht unterstützt.

Wenn Sie viele kleine Dateien haben, ist dies sicherlich möglich. Stellen Sie sich Folgendes vor:

  • 50.000 Dateien
  • 32 KB Clustergröße( Zuordnungseinheiten), das ist der Maximalwert für FAT32

Ok, jetzt ist der minimale benötigte - Speicherplatz 50.000 * 32.000 = 1.6 GB( mit SI - Präfixen, nicht binär)Mathe).Der Platz, den jede Datei auf der Festplatte beansprucht, ist immer ein Vielfaches der Größe der Zuweisungseinheit - und hier gehen wir davon aus, dass jede Datei tatsächlich klein genug ist, um in eine einzelne Einheit zu passen, mit etwas( ungenutztem) Speicherplatz.

Wenn jede Datei durchschnittlich 2 KB groß ist, erhalten Sie insgesamt etwa 100 MB - aber Sie verschwenden aufgrund der Größe der Zuordnungseinheit auch durchschnittlich 15 Mal( 30 KB pro Datei).

Ausführliche Erklärung

Warum passiert das? Nun, das FAT32-Dateisystem muss verfolgen, wo jede Datei gespeichert ist. Wenn es eine Liste von jedem einzelnen Byte behalten würde, würde die Tabelle( wie ein Adressbuch) mit der gleichen Geschwindigkeit wie die Daten wachsen - und viel Platz verschwenden. Sie verwenden also "Zuordnungseinheiten", die auch als "Clustergröße" bezeichnet werden. Das Volumen ist in diese Zuordnungseinheiten unterteilt, und soweit das Dateisystem betroffen ist, können sie nicht unterteilt werden - das sind die kleinsten Blöcke, die adressiert werden können.Ähnlich wie Sie eine Hausnummer haben, aber Ihrem Postboten ist es egal, wie viele Schlafzimmer Sie haben oder wer in ihnen lebt.

Was passiert also, wenn Sie eine sehr kleine Datei haben? Nun, das Dateisystem kümmert sich nicht darum, ob die Datei 0 KB, 2 KB oder sogar 15 KB ist, es wird ihm den geringsten Platz geben - im obigen Beispiel sind das 32 KB.Ihre Datei verwendet nur einen kleinen Teil dieses Speicherplatzes und der Rest ist im Grunde genommen verschwendet, gehört aber immer noch zur Datei - ähnlich wie ein Schlafzimmer, das Sie unbesetzt lassen.

Warum gibt es unterschiedliche Zuordnungseinheiten? Nun, es wird ein Kompromiss zwischen einem größeren Tisch( Adressbuch, zB Sprichwort: John besitzt ein Haus in 123 Fake Street, 124 Fake Street, 666 Satan Lane, etc.), oder mehr verschwendetem Platz in jeder Einheit( Haus).Wenn Sie größere Dateien haben, ist es sinnvoller, größere Zuordnungseinheiten zu verwenden - da eine Datei erst dann eine neue Einheit( Haus) bekommt, wenn alle anderen voll sind. Wenn Sie viele kleine Dateien haben, werden Sie sowieso einen großen Tisch( Adressbuch) haben, also können Sie ihnen auch kleine Einheiten( Häuser) geben.

Große Zuordnungseinheiten werden in der Regel viel Speicherplatz verschwenden, wenn Sie viele kleine Dateien haben. Es gibt normalerweise keinen guten Grund, über 4 KB für den allgemeinen Gebrauch zu gehen.

Fragmentierung?

Fragmentierung sollte auf diese Weise keinen Platz verschwenden. Große Dateien können in mehrere Zuordnungseinheiten fragmentiert, d. H. Aufgeteilt, werden, aber jede Einheit sollte gefüllt sein, bevor die nächste gestartet wird. Defragging kann in den Zuordnungstabellen etwas Speicherplatz sparen, aber das ist nicht Ihr spezifisches Problem.

Mögliche Lösungen

Wie Gladiator2345 vorgeschlagen hat, sind Ihre einzigen wirklichen Optionen zu diesem Zeitpunkt, mit ihm zu leben oder mit kleineren Zuordnungseinheiten neu zu formatieren.

Ihre Karte könnte in FAT16 formatiert sein, das eine kleinere Begrenzung für die Tabellengröße hat und daher viel größere Zuordnungseinheiten benötigt, um ein größeres Volumen zu adressieren( mit einer Obergrenze von 2 GB mit 32 KB Zuordnungseinheiten).Quelle mit freundlicher Genehmigung von Braiam. Wenn dies der Fall ist, sollten Sie trotzdem in der Lage sein, als FAT32 sicher zu formatieren.

Haben Sie etwas zur Erklärung hinzuzufügen? Ton in den Kommentaren ab. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange Benutzern lesen? Sehen Sie sich den vollständigen Diskussionsfaden hier an.