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

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

Warum-gibt-es-einen-großen-Unterschied-zwischen-Größe-und-Größe-auf-Platte-00?

Meistens sind die Werte für "Größe" und "Größe"on disk ’wird beim Überprüfen der Größe eines Ordners oder einer Datei fast übereinstimmen, aber was ist, wenn zwischen beiden eine große Diskrepanz besteht? Der heutige SuperUser-Frage- und Antwortbeitrag befasst sich mit der Antwort auf dieses verwirrende Problem.

Die heutige Frage & Antwort-Sitzung wird von SuperUser bereitgestellt - einer Unterteilung von Stack Exchange, einer von der Community gesteuerten Gruppierung von Q & A-Websites.

Die Frage

SuperUser Reader theelastblack möchte wissen, warum es für einen Ordner auf der SD-Karte seines Telefons einen so großen Unterschied zwischen "Größe" und "Größe auf Festplatte" gibt:

Wie Sie unten sehen können, gibt es für diesen Ordner einen großen Unterschied zwischen den Feldern "Größe" und "Größe auf Festplatte". Warum ist das so?

Warum-gibt-es-einen-großen-Unterschied-zwischen-Größe-und-Größe-auf-Platte-01?

Ich weiß, dass "Größe auf Festplatte" aufgrund der Zuordnungseinheiten in Windows etwas größer sein sollte als "Größe", aber warum gibt es diesen großen Unterschied? Könnte es an der großen Anzahl von Dateien liegen?

Übrigens befindet sich dieser Ordner auf der SD-Karte meines Android-Telefons. Darin speichert meine Karten-App die zwischengespeicherten Karten, und die App bezieht ihre Karten von Google Maps.

Beim Betrachten des Screenshots besteht definitiv eine große Diskrepanz zwischen "Größe" und "Größe auf Festplatte". Was ist hier passiert, um dies zu bewirken?

Die Antwort

SuperUser-Mitwirkender Bob hat die Antwort für uns:

Ich gehe davon aus, dass Sie das verwendenFAT / FAT32-Dateisystem hier, 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 ohnehin nicht unterstützt.

Wenn Sie viele kleine Dateien haben, ist dies sicherlich möglich. Bedenken Sie:

  • 50.000 Dateien
  • 32 KB Clustergröße (Zuordnungseinheiten), die für FAT32 maximal ist

Ok, jetzt das Minimum Der belegte Speicherplatz beträgt 50.000 * 32.000 = 1.6 GB (mit SI-Präfixen, nicht binär, um die Mathematik zu vereinfachen). Der Speicherplatz, den jede Datei auf der Festplatte beansprucht, ist immer ein Vielfaches der Größe der Zuordnungseinheit. Wir gehen hier davon aus, dass jede Datei tatsächlich klein genug ist, um in eine einzelne Einheit zu passen, wobei ein Teil des (verschwendeten) Speicherplatzes übrig bleibt.

Wenn jede Datei durchschnittlich 2 KB groß ist, erhalten Sie insgesamt etwa 100 MB. Aufgrund der Größe der Zuordnungseinheiten verschwenden Sie jedoch durchschnittlich das 15-fache (30 KB pro Datei).

Ausführliche Erklärung

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

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 groß ist, es gibt ihr den geringsten verfügbaren Speicherplatz - im obigen Beispiel sind das 32 KB. Ihre Datei belegt nur einen kleinen Teil dieses Speicherplatzes, und der Rest wird im Grunde verschwendet, gehört aber immer noch zur Datei - ähnlich wie ein Schlafzimmer, das Sie unbewohnt lassen.

Warum gibt es unterschiedliche Zuordnungseinheitengrößen? Nun, es wird ein Kompromiss zwischen einem größeren Tisch (Adressbuch, z. B. John besitzt ein Haus in der 123 Fake Street, 124 Fake Street, 666 Satan Lane usw.) 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) erhält, wenn alle anderen gefüllt sind. Wenn Sie viele kleine Dateien haben, haben Sie ohnehin einen großen Tisch (Adressbuch), und Sie können ihnen auch kleine Einheiten (Häuser) geben.

Große Zuordnungseinheiten verschwenden in der Regel viel Platz, wenn Sie viele kleine Dateien haben. Normalerweise gibt es keinen guten Grund, für die allgemeine Verwendung mehr als 4 KB zu verwenden.

Zersplitterung?

Fragmentierung sollte es nicht seinauf diese Weise Platz verschwenden. Große Dateien können fragmentiert, d. H. In mehrere Zuordnungseinheiten aufgeteilt werden, aber jede Einheit sollte gefüllt werden, bevor die nächste gestartet wird. Durch das Defragmentieren wird möglicherweise ein wenig Platz in den Zuordnungstabellen gespart, dies ist jedoch kein spezielles Problem.

Mögliche Lösungen

Wie Gladiator2345 angedeutet hat, besteht Ihre einzige echte Option derzeit darin, damit zu leben oder mit kleineren Zuordnungseinheiten neu zu formatieren.

Ihre Karte ist möglicherweise in FAT16 formatierteine kleinere Grenze für die Tabellengröße und erfordert daher viel größere Zuordnungseinheiten, um ein größeres Volumen zu adressieren (mit einer Obergrenze von 2 GB bei 32 KB-Zuordnungseinheiten). Quelle mit freundlicher Genehmigung von Braiam. Wenn dies der Fall ist, sollten Sie trotzdem sicher als FAT32 formatieren können.


Möchten Sie der Erklärung etwas hinzufügen? Ton aus in den Kommentaren. Möchten Sie weitere Antworten von technisch versierten Stack Exchange-Benutzern lesen? Den vollständigen Diskussionsthread finden Sie hier.