Cargo actual:Index > ¿Por qué hay una gran diferencia entre 'Tamaño' y 'Tamaño en disco'?

¿Por qué hay una gran diferencia entre 'Tamaño' y 'Tamaño en disco'?

Actualizado:01-03Fuente: consolidación de la red
Advertisement

¿Por qué hay una gran diferencia entre 'Tamaño' y 'Tamaño en disco'?


La mayor parte del tiempo, los valores para 'Tamaño' y 'Tamaño en disco' será muy cerca de adaptación al comprobar una carpeta o el tamaño del archivo, pero lo que si hay una gran discrepancia entre los dos? De hoy superusuario Q & A después mira la respuesta a este problema confuso.

Pregunta y respuesta La sesión de hoy nos llega por cortesía de superusuario, una subdivisión de Stack Exchange, un grupo impulsado por la comunidad de Q & A sitios web.

La Pregunta

Lector de superusuario thelastblack quiere saber por qué hay una gran diferencia entre "Tamaño" y "Tamaño en disco 'para una carpeta en la tarjeta SD de su teléfono:

Como se puede ver a continuación, hay tanta diferencia entre el 'Tamaño' y 'Tamaño en disco' campos para esta carpeta. Porque es eso?

¿Por qué hay una gran diferencia entre 'Tamaño' y 'Tamaño en disco'?

Sé que 'Tamaño en disco' debe ser un poco más de "tamaño" debido a unidades de asignación en Windows, pero ¿por qué hay tanta diferencia? ¿Podría ser debido a la gran cantidad de archivos?

Por cierto, esta carpeta está en la tarjeta SD de mi teléfono Android. Dentro de esto, mi aplicación mapas almacena sus mapas en caché, y la aplicación obtiene sus mapas de Google Maps.

En cuanto a la pantalla, definitivamente hay una gran discrepancia entre 'Tamaño' y 'Tamaño del disco', así que lo que ha sucedido aquí para hacer esto?

La Respuesta

Superusuario colaborador Bob tiene la respuesta para nosotros:

Voy a estar asumiendo que usted está utilizando el sistema de archivos FAT / FAT32 aquí, ya que lo mencionas esto es una tarjeta SD. NTFS y exFAT se comportan de manera similar con respecto a las unidades de asignación. Otros sistemas de archivos pueden ser diferentes, pero no son compatibles con Windows de todos modos.

Si usted tiene una gran cantidad de archivos pequeños, esto es ciertamente posible. Considera esto:

  • 50.000 archivos
  • 32 KB tamaño de clúster (unidades de asignación), que es el máximo para FAT32

Ok, ahora el mínimo espacio es tomado 50.000 * 32.000 = 1,6 GB (con prefijos SI, no binarios, para simplificar las matemáticas). El espacio de cada archivo tiene en el disco es siempre un múltiplo del tamaño de unidad de asignación - y aquí estamos asumiendo cada archivo es en realidad lo suficientemente pequeño como para caber dentro de una sola unidad, con un poco de espacio (perdido) sobra.

Si cada archivo promedio de 2 KB, se obtendría unos 100 MB en total - pero también se está perdiendo 15x que (30 KB por archivo), en promedio, debido al tamaño de unidad de asignación.

In-Depth Explicación

¿Por qué sucede esto? Pues bien, el sistema de archivos FAT32 tiene que seguir la pista de donde se almacena cada archivo. Si se tratara de mantener una lista de cada byte, la mesa (como una libreta de direcciones) podría crecer a la misma velocidad que los datos - y perder una gran cantidad de espacio. Así que lo que hacen es utilizar "unidades de asignación", también conocido como el "tamaño de clúster". El volumen se divide en estas unidades de asignación, y por lo que el sistema de archivos se refiere, no pueden ser subdivididos - esos son los bloques más pequeños puede direccionar. Al igual que usted tiene un número de casa, pero el cartero no le importa cuántas habitaciones tiene o que vive en ellos.

Entonces, ¿qué sucede si usted tiene un archivo muy pequeño? Pues bien, el sistema de archivos no le importa si el archivo es 0 KB, 2 KB, o incluso 15 KB, que va a darle el menor espacio que puede - en el ejemplo anterior, eso es 32 KB. El archivo sólo se utiliza una pequeña cantidad de este espacio, y el resto es básicamente pierde, pero sigue perteneciendo al expediente - al igual que una habitación de salir desocupada.

¿Por qué hay diferentes tamaños de unidades de asignación? Bueno, se hace entre un trade-off que tiene una mesa más grande (libreta de direcciones, por ejemplo diciendo John posee una casa en 123 Fake Street, la calle 124 Fake, 666 Satanás Lane, etc.), o más de espacio desperdiciado en cada unidad (casa) . Si tiene archivos más grandes, tiene más sentido utilizar unidades de asignación más grandes - porque un archivo no recibe una nueva unidad (casa) hasta que todos los demás están llenos. Si usted tiene un montón de archivos pequeños, bueno, usted va a tener una gran mesa (libreta de direcciones) de todos modos, por lo que puede también darles pequeñas unidades (casas).

Las grandes unidades de asignación, como regla general, se pierde mucho espacio si usted tiene un montón de archivos pequeños. Por lo general, no es una buena razón para ir por encima de 4 KB para el uso general.

Fragmentación?

En cuanto a la fragmentación, la fragmentación no debe perder espacio de esta manera. Los archivos grandes pueden ser fragmentado, es decir, dividir, en múltiples unidades de asignación, pero cada unidad debe ser llenado antes de iniciar la siguiente. Desfragmentación podría ahorrar un poco de espacio en las tablas de asignación, pero éste no es su problema específico.

Soluciones Posibles

Como gladiator2345 sugirieron , sus únicas opciones reales en este punto son a vivir con ella o formatear con unidades de asignación más pequeños.

Su tarjeta puede ser formateado en FAT16, que tiene un límite más pequeño en tamaño de la tabla y por lo tanto requiere de unidades de asignación mucho más grandes con el fin de hacer frente a un mayor volumen (con un límite máximo de 2 GB con unidades de asignación 32 KB). Fuente cortesía de Braiam . Si ese es el caso, usted debería ser capaz de formatear de forma segura como FAT32 de todos modos.



Si tiene algo que añadir a la explicación? En off en los comentarios. ¿Quieres leer más respuestas de otros usuarios Stack Exchange conocedores de la tecnología? Echa un vistazo a el tema de discussion completo aquí .