in

Pourquoi y a-t-il une grande différence entre la «taille» et la «taille sur le disque»?

La plupart du temps, les valeurs de «Taille» et «Taille sur le disque» seront très proches de la correspondance lors de la vérification de la taille d’un dossier ou d’un fichier, mais que se passe-t-il s’il y a un énorme écart entre les deux? L’article de questions-réponses des super-utilisateurs d’aujourd’hui examine la réponse à ce problème déroutant.

La question

Le lecteur SuperUser theelastblack veut savoir pourquoi il y a une telle différence entre ‘Size’ et ‘Size on disk’ pour un dossier sur la carte SD de son téléphone:

Comme vous pouvez le voir ci-dessous, il y a tellement de différence entre les champs «Taille» et «Taille sur le disque» pour ce dossier. Pourquoi donc?

pourquoi-y-a-t-il-une-grande-différence-entre-taille-et-taille-sur-le-disque-01

Je sais que «Taille sur le disque» devrait être un peu plus que «Taille» à cause des unités d’allocation dans Windows, mais pourquoi y a-t-il autant de différence? Serait-ce à cause du grand nombre de fichiers?

BTW, ce dossier se trouve sur la carte SD de mon téléphone Android. À l’intérieur de cela, mon application de cartes stocke ses cartes en cache et l’application obtient ses cartes de Google Maps.

En regardant la capture d’écran, il y a certainement un énorme écart entre «Taille» et «Taille sur le disque», alors que s’est-il passé ici pour causer cela?

La réponse

Bob, le contributeur SuperUser, a la réponse pour nous:

Si vous avez beaucoup de petits fichiers, c’est certainement possible. Considère ceci:

  • 50 000 fichiers
  • Taille de cluster de 32 Ko (unités d’allocation), qui est le maximum pour FAT32

Ok, maintenant l’espace pris est de 50 000 * 32 000 = 1,6 Go (en utilisant les préfixes SI, et non binaires, pour simplifier les calculs). L’espace que chaque fichier prend sur le disque est toujours un multiple de la taille de l’unité d’allocation – et ici nous supposons que chaque fichier est en fait assez petit pour tenir dans une seule unité, avec un peu d’espace (gaspillé).

Si chaque fichier comptait en moyenne 2 Ko, vous obtiendrez environ 100 Mo au total – mais vous gaspillez également 15 fois plus (30 Ko par fichier) en moyenne en raison de la taille de l’unité d’allocation.

Explication détaillée

Pourquoi cela arrive-t-il? Eh bien, le système de fichiers FAT32 doit garder une trace de l’emplacement de stockage de chaque fichier. S’il devait conserver une liste de chaque octet, la table (comme un carnet d’adresses) croîtrait à la même vitesse que les données – et gaspillerait beaucoup d’espace. Ils utilisent donc des «unités d’allocation», également appelées «taille de cluster». Le volume est divisé en ces unités d’allocation, et en ce qui concerne le système de fichiers, elles ne peuvent pas être subdivisées – ce sont les plus petits blocs qu’il peut adresser. Tout comme vous avez un numéro de maison, mais votre facteur ne se soucie pas du nombre de chambres que vous avez ou de qui y habite.

Alors, que se passe-t-il si vous avez un très petit fichier? Eh bien, le système de fichiers ne se soucie pas si le fichier est de 0 Ko, 2 Ko ou même 15 Ko, il lui donnera le moins d’espace possible – dans l’exemple ci-dessus, c’est 32 Ko. Votre fichier n’utilise qu’une petite quantité de cet espace, et le reste est essentiellement gaspillé, mais appartient toujours au fichier – un peu comme une chambre que vous laissez inoccupée.

Pourquoi existe-t-il différentes tailles d’unité d’allocation? Eh bien, cela devient un compromis entre avoir une table plus grande (carnet d’adresses, par exemple dire que John possède une maison au 123 Fake Street, 124 Fake Street, 666 Satan Lane, etc.), ou plus d’espace gaspillé dans chaque unité (maison) . Si vous avez des fichiers plus volumineux, il est plus judicieux d’utiliser des unités d’allocation plus grandes, car un fichier ne reçoit pas de nouvelle unité (maison) tant que toutes les autres ne sont pas remplies. Si vous avez beaucoup de petits fichiers, eh bien, vous allez quand même avoir une grande table (carnet d’adresses), alors autant leur donner de petites unités (maisons).

Les grandes unités d’allocation, en règle générale, gaspilleront beaucoup d’espace si vous avez beaucoup de petits fichiers. Il n’y a généralement pas de bonne raison d’aller au-dessus de 4 Ko pour une utilisation générale.

Fragmentation?

Quant à la fragmentation, la fragmentation ne devrait pas gaspiller de l’espace de cette manière. Les fichiers volumineux peuvent être fragmentés, c’est-à-dire fractionnés, en plusieurs unités d’allocation, mais chaque unité doit être remplie avant le lancement de la suivante. La défragmentation peut économiser un peu d’espace dans les tables d’allocation, mais ce n’est pas votre problème spécifique.

Solutions possibles

Comme gladiateur2345 suggéré, vos seules vraies options à ce stade sont de vivre avec ou de reformater avec des unités d’allocation plus petites.

Votre carte peut être formatée en FAT16, ce qui a une limite de taille de table plus petite et nécessite donc des unités d’allocation beaucoup plus grandes afin de traiter un volume plus important (avec une limite supérieure de 2 Go avec des unités d’allocation de 32 Ko). La source gracieuseté de Braiam. Si tel est le cas, vous devriez quand même pouvoir formater en toute sécurité en FAT32.

Avez-vous quelque chose à ajouter à l’explication? Sonnez dans les commentaires. Vous voulez lire plus de réponses d’autres utilisateurs de Stack Exchange férus de technologie? Consultez le fil de discussion complet ici.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Comment créer rapidement un rappel sur iPhone et iPad

Comment créer rapidement un rappel sur iPhone et iPad

Effacer automatiquement l'historique de téléchargement dans Firefox

Effacer automatiquement l’historique de téléchargement dans Firefox