Página principal » cómo » ¿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'?

    La mayoría de las veces, los valores de 'Tamaño' y 'Tamaño en el disco' estarán muy cerca de coincidir al verificar el tamaño de una carpeta o archivo, pero ¿qué pasa si hay una gran discrepancia entre los dos? La publicación de preguntas y respuestas de SuperUser de hoy analiza la respuesta a este confuso problema.

    La sesión de Preguntas y Respuestas de hoy nos llega por cortesía de SuperUser, una subdivisión de Stack Exchange, un grupo de sitios web de preguntas y respuestas impulsado por la comunidad..

    La pregunta

    El lector Superusuario thelastblack quiere saber por qué existe una gran diferencia entre 'Tamaño' y 'Tamaño en disco' para una carpeta en la tarjeta SD de su teléfono:

    Como puede ver a continuación, hay mucha diferencia entre los campos 'Tamaño' y 'Tamaño en disco' para esta carpeta. Porqué es eso?

    Sé que 'Tamaño en disco' debería ser un poco más que 'Tamaño' debido a las 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, la aplicación my maps almacena sus mapas en caché, y la aplicación obtiene sus mapas de Google Maps..

    En cuanto a la captura de pantalla, definitivamente hay una gran discrepancia entre 'Tamaño' y 'Tamaño en el disco', así que lo que ha sucedido aquí es lo que causa esto.?

    La respuesta

    Bob, el contribuidor del superusuario, tiene la respuesta para nosotros:

    Asumiré que está utilizando el sistema de archivos FAT / FAT32 aquí, ya que menciona que se trata de 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 de todos modos no son compatibles con Windows.

    Si tienes muchos archivos pequeños, esto es ciertamente posible. Considera esto:

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

    Ok ahora mínimo el espacio ocupado es 50,000 * 32,000 = 1.6 GB (usando prefijos SI, no binarios, para simplificar las matemáticas). El espacio que ocupa cada archivo en el disco siempre es un múltiplo del tamaño de la unidad de asignación, y aquí asumimos que cada archivo es en realidad lo suficientemente pequeño como para caber dentro de una sola unidad, con algo de espacio (desperdiciado).

    Si cada archivo tuviera un promedio de 2 KB, obtendría unos 100 MB en total, pero también está perdiendo 15 veces más (30 KB por archivo) en promedio debido al tamaño de la unidad de asignación.

    Explicación en profundidad

    ¿Por qué pasó esto? Bueno, el sistema de archivos FAT32 necesita realizar un seguimiento de dónde se almacena cada archivo. Si tuviera que mantener una lista de cada byte, la tabla (como una libreta de direcciones) crecería a la misma velocidad que los datos y desperdiciaría mucho espacio. Entonces, lo que hacen es usar "unidades de asignación", también conocidas como "tamaño de clúster". El volumen se divide en estas unidades de asignación, y en lo que respecta al sistema de archivos, no se pueden subdividir: esos son los bloques más pequeños que puede abordar. Al igual que usted tiene un número de casa, pero a su cartero no le importa cuántas habitaciones tiene o quién vive en ellas.

    Entonces, ¿qué pasa si tienes un archivo muy pequeño? Bueno, al sistema de archivos no le importa si el archivo es de 0 KB, 2 KB, o incluso 15 KB, le dará el menor espacio posible. En el ejemplo anterior, es de 32 KB. Su archivo solo utiliza una pequeña cantidad de este espacio, y el resto básicamente se desperdicia, pero aún pertenece al archivo, de manera muy parecida a la habitación que deja desocupada.

    ¿Por qué hay diferentes tamaños de unidades de asignación? Bueno, se convierte en un intercambio entre tener una mesa más grande (libreta de direcciones, por ejemplo, decir que John posee una casa en 123 Fake Street, 124 Fake Street, 666 Satan Lane, etc.), o más espacio desperdiciado en cada unidad (casa) . Si tiene archivos más grandes, tiene más sentido usar unidades de asignación más grandes, ya que un archivo no obtiene una nueva unidad (casa) hasta que se llenan todos los demás. Si tienes muchos archivos pequeños, bueno, de todos modos vas a tener una mesa grande (libreta de direcciones), así que también puedes darles unidades pequeñas (casas).

    Las unidades de asignación grandes, como regla general, desperdiciarán una gran cantidad de espacio si tiene muchos archivos pequeños. Generalmente no hay una buena razón para ir por encima de 4 KB para uso general.

    Fragmentación?

    En cuanto a la fragmentación, la fragmentación no debería desperdiciar espacio de esta manera. Los archivos grandes pueden estar fragmentados, es decir, divididos, en múltiples unidades de asignación, pero cada unidad debe llenarse antes de que comience la siguiente. Desfragmentar puede ahorrar un poco de espacio en las tablas de asignación, pero este no es su problema específico.

    Soluciones posibles

    Como sugirió gladiator2345, sus únicas opciones reales en este punto son vivir con él o reformatear con unidades de asignación más pequeñas.

    Es posible que su tarjeta esté formateada en FAT16, que tiene un límite menor en el tamaño de la tabla y, por lo tanto, requiere unidades de asignación mucho más grandes para abordar un volumen mayor (con un límite superior de 2 GB con unidades de asignación de 32 KB). Fuente cortesía de Braiam. Si ese es el caso, debería poder formatear de forma segura como FAT32 de todos modos.


    ¿Tienes algo que agregar a la explicación? Apaga el sonido en los comentarios. ¿Quieres leer más respuestas de otros usuarios de Stack Exchange con experiencia en tecnología? Echa un vistazo a la discusión completa aquí.