¿5 GB de imágenes jpeg tardan la misma cantidad de tiempo en descargarse o importarse que 5 GB de texto plano?

39

Me pregunto, ya que ahora estoy importando todas mis fotos de un CD que mi padre me quemó. Tenía curiosidad si 5 GB de imágenes tomaban la misma cantidad de tiempo exacta que 5 GB de texto al hacer este tipo de transferencias. Dado que puede haber "sobrecarga" asociada con los diferentes formatos de archivo, incluso si son acumulativamente del mismo tamaño ...

editar: en realidad no es un CD-ROM sino un DVD-R

Templario oscuro
fuente
11
5 concierto es 5 concierto a menos que no lo sea.
Xavierjazz
2
No puedo discutir con eso ...
Thomas Padron-McCarthy
35
¿Qué es más pesado: una tonelada de ladrillos o una tonelada de plumas?
Graham Borland
1
Vea mi respuesta (y las otras buenas que resaltan diferentes factores) antes de descartar esto como una pregunta obviamente mala. 5 GB pueden ser 5 GB, pero la eficiencia de la tubería por la que viajan los datos marca la diferencia.
David Stratton
1
@Graham: ¿Cuál es más pesado, una libra de plumas o una libra de oro? (respuesta)
BlueRaja - Danny Pflughoeft

Respuestas:

75

La respuesta es, depende". Depende de lo que quieras decir con "descargar".

Si está descargando desde un sitio web, algunos sitios comprimen automáticamente los archivos "sobre la marcha", y el texto se comprime muy bien, mientras que JPEG ya está comprimido, por lo que no se comprimirá en absoluto. En este caso, habrá una gran diferencia.

Si solo está utilizando un comando de copia para copiar archivos de una computadora a otra, entonces no habrá diferencia. Sin embargo, si está empleando algún tipo de herramienta especializada, de nuevo, depende de si esa herramienta usa compresión automática o no. La única diferencia entre jpeg y texto es la posibilidad de comprimir los archivos.

No hay diferencia en la "sobrecarga" asociada con la transferencia de archivos, sin importar cuál sea el archivo.

haimg
fuente
29
En el caso de una copia, si el tamaño general es el mismo, es más probable que el número de archivos tenga un impacto ya que hay una sobrecarga en la transferencia de los metadatos de archivo / carpeta.
Chris Nava
2
@ Chris-Nava: Sí, esto es muy cierto. Solo he considerado archivos del mismo tamaño, pero tienes razón al señalar este matiz.
Haimg
2
@DarkTemplar: incluye los metadatos. Casi siempre. Por lo general, la cantidad de metadatos almacenados "fuera" del archivo es bastante limitada: nombre del archivo, permisos y algunos tiempos de acceso. Muchos sistemas de archivos tienen una opción para almacenar metadatos arbitrarios (incluso grandes) "fuera" del archivo, pero eso rara vez se usa.
Joachim Sauer
44
El mecanismo de transferencia también podría ser una fuente de retraso. Por ejemplo, SMB (Windows File Sharing) es MALO al transferir grandes cantidades de archivos pequeños, mientras que NFS o FTP son mucho más rápidos para el mismo conjunto de archivos.
Chris Nava
44
Me sorprende que nadie haya mencionado la posibilidad de que un antivirus agregue una sobrecarga significativa. Muchas aplicaciones antivirus escanean archivos JPEG en busca de virus e ignoran los documentos de texto. Esto definitivamente podría contribuir al factor depende .
Scott Rippey
17

Con 5GB de imágenes, es probable que esté hablando de unos pocos miles de archivos de tamaño razonable, digamos 3MB + cada uno. Si descargara 5 GB de archivos de texto, normalmente esperaría que cada archivo sea mucho más pequeño. Por lo tanto, es probable que esté lidiando con un orden de magnitud o dos archivos adicionales (cientos de miles o millones de archivos).

Copiar muchos archivos pequeños lleva más tiempo que copiar la misma cantidad de datos en archivos más grandes. Hay una sobrecarga razonable en la creación de cada archivo individual.

Probablemente no lo suficiente como para marcar una gran diferencia, pero sigue siendo una diferencia.

andynormancx
fuente
3
Creo que esto puede hacer una gran diferencia. Copiar cien archivos de texto de 30K definitivamente puede tomar más tiempo que copiar un archivo de 3MB, dependiendo de dónde esté copiando.
Steven Noto
+1 Para abordar el problema real aquí. Con mucho, la mejor respuesta.
artistoex
12

El "depende" en ftp está en los detalles finos.

El modo binario ftp es solo una transferencia directa y tomará el tiempo necesario para 5GB.

Si va de Windows a Linux como una transferencia de texto ftp (para sorprendentemente, texto sin formato), ftp realmente cambia las terminaciones de línea de / r / n a / ny viceversa. Probablemente haya un poco de sobrecarga en el reemplazo de transmisión, pero con 5 GB de texto, tendrá menos que escribir en el disco pasando de ganar a lin a medida que suelta un carácter por línea, y más yendo de lin a ganar a medida que agrega un carácter por línea.

Entonces, ¿son 5GB en Linux? o Windows?

¡Basta de pedantería para una noche, ir a la cama!

Laboratorios Fiasco
fuente
¿Cómo llegamos a FTP? ¿El OP parece estar copiando desde la unidad de DVD a una unidad local?
andynormancx
Del titulo. Era tarde en la noche y respondí la pregunta, no el párrafo debajo. Al igual que el cartel más votado en sus párrafos iniciales. Ahora para copiar de un medio a otro ...
Fiasco Labs
3

No hay sobrecarga asociada con los archivos en sí, pero algunas instalaciones de almacenamiento / transferencia admiten la compresión automática, y eso puede introducir una diferencia.

Al copiar desde DVD a una unidad sin comprimir, no hay diferencia. Al copiar en una unidad NTFS comprimida, el texto ocupará menos espacio que los archivos JPEG.

Al descargar desde un servidor HTTP que usa compresión, el texto tardará menos en descargarse. Pero si el servidor no usa compresión, no habrá diferencia.

Además, hablando de gastos generales, un millón de archivos pequeños de 5 GB de tamaño total ocupará más espacio [real] y, por lo general, más tiempo para copiar que un solo archivo de 5 GB, porque ese 5 GB no incluye el espacio necesario para almacenar nombres de archivos, fechas y otros metadatos .

hamstergene
fuente
3

Esto está destinado a ser una adición a las otras respuestas que abordan la compresión, etc., como factores que afectan la eficiencia y el tiempo de descarga.

Un punto que aún no se ha mencionado es la eficiencia del paquete . Dudo que la mayoría de la gente haya encontrado esto, así que aquí hay un breve resumen.

Antes de aventurarnos a usar los servicios web, queríamos saber la diferencia en eficiencia entre usarlos y usar una conexión de base de datos más "estándar" (como OleDb, System.Data.SqlClient, JDBC, etc.). Hicimos que nuestro gurú pusiera rastreadores de paquetes para rastrear los flujos de datos a través de la red para ver la diferencia.

Esperábamos que el uso de servicios web sería menos eficiente debido al formato binario de los otros tipos de conexiones y la sobrecarga adicional de las etiquetas XML utilizadas para describir los datos.

Lo que encontramos fue que los servicios web eran, en muchos casos MÁS eficientes, al menos en nuestra red. La diferencia era que cuando transferíamos datos binarios, algunos de los bytes dentro de los paquetes estaban vacíos, pero al enviar datos de texto, los paquetes se usaban de manera más eficiente.

Encontramos esto interesante y lo probamos mientras transferíamos diferentes tipos de archivos, y descubrimos que, por regla general, el texto simple que pasaba por la red siempre usaba el 100% de los bits disponibles en cada paquete, donde las transferencias binarias a menudo tenían bits no utilizados. Por qué es esto, no podría decírtelo, pero varios experimentos lo confirmaron.

Varios comentarios sobre la pregunta parecían descartar esto como una pregunta obviamente defectuosa, pero en realidad no lo es. Aunque la cantidad de datos sigue siendo la misma, la eficiencia de la tubería también es importante.

Porque no puedo resistirme a hacer analogías que una persona que no es de TI entendería:

Un solo estante en un congelador en una tienda de comestibles tiene x cantidad de espacio, sin embargo, puede colocar más galones de helado en un estante si los recipientes son cuadrados que si son redondos, debido al espacio desperdiciado creado al usar redondo contenedores. Nuestras pruebas, aunque contradictorias al principio, nos dijeron lo que cualquier almacenista de supermercado podría habernos dicho.

David Stratton
fuente
2
¿Cuál fue la base de datos involucrada? Diferentes RDBMS son más o menos "eficientes en la red" que otros. ¿Mediste desde el establecimiento de la conexión o solo los datos del conjunto de datos? Tengo mucha curiosidad
Fabricio Araujo
1

La sabiduría tradicional dice que 5 GB son 5 GB. Sin embargo, hay algunos escenarios donde estos dos no son iguales; tiene que ver con una diferencia en cómo se estructuran los datos de los archivos.

En primer lugar, los archivos JPEG están comprimidos. Para ver la imagen, primero debe descomprimirse el archivo, y para la gran mayoría de esas imágenes debe tener todo el archivo para hacerlo. Hay archivos JPEG progresivos que proporcionan una imagen iterativamente más nítida a medida que se carga, pero rara vez se usan más en una época en la que DSL y otras conexiones de alta velocidad son muy comunes. El texto, por otro lado, es más o menos transmisible; tan pronto como tenga un byte (o dos o cuatro, dependiendo de la codificación UTF utilizada), puede mostrar ese carácter. Incluso los mecanismos de transferencia de datos más antiguos pueden cargar texto más rápido de lo que puede leerlo. Por lo tanto, un JPEG de 5 GB tardaría más en poder mostrar algo que un archivo de texto de 5 GB.

En segundo lugar, también porque los archivos JPEG están comprimidos, no funcionan bien con los navegadores o los programas / protocolos de transferencia de archivos que comprimen grandes cantidades de datos antes de la transmisión. Puede ver esto al comprimir un archivo ZIP; a menos que el segundo proceso ZIP se haya configurado para hacer más compactación (ralentizándolo), no verá mucha diferencia de tamaño. Eso significa que cuando se usa una de estas herramientas, 5GB no es 5GB; los archivos JPEG seguirán siendo de unos 5 GB, pero el texto se puede comprimir, tal vez hasta 1 GB o menos. Si comparara 5 GB de archivos de mapa de bits con 5 GB de texto sin formato, la comparación estaría mucho más cerca.

Sin embargo, simplemente mover 5GB de archivos de una computadora a otra usando NTP, FTP o HTTP, sin ningún tipo de compresión o mecanismo de "doanload booster", tomará aproximadamente el mismo tiempo en general; cualquier diferencia sería el resultado de diferentes niveles de tráfico de red en cualquier segundo dado durante cada transferencia.

KeithS
fuente
Nunca he oído hablar de JPG intercalado. ¿Está combinando JPG progresivo con GIF / PNG intercalado?
esponjoso
La variante "JPEG progresivo" es un formato entrelazado muy parecido a GIF / PNG entrelazado. El término "progresivo" para JPEG es confuso IMO, debido a términos bien conocidos como "escaneo progresivo", "720p (progresivo)" y "1080p". Todos esos términos indican que un cuadro completo se dibuja en resolución completa en una pasada en lugar de en dos pasadas entrelazadas, exactamente lo contrario del comportamiento de visualización JPEG "progresivo".
KeithS
1
Pero no es así como funciona el JPEG progresivo. No es un formato entrelazado / intercalado como GIF o PNG (o video DVD, para el caso), es un refinamiento iterativo de bloques DCT. Un JPEG progresivo en progreso tiene una cobertura de píxeles completa: solo tiene una tasa de bits más baja. JPEG tampoco trata cosas en líneas de escaneo como GIF o PNG, las trata como una colección de grupos cuadrados de píxeles.
esponjoso
Tomate, Tomahto. La imagen se muestra originalmente usando un subconjunto de los datos de la imagen completa que llega temprano, y luego se refina con el resto. Ese fue mi punto. Ya se trate de líneas o bloques, es un estilo de carga de varias pasadas en lugar de una pasada.
KeithS
No es solo una pequeña diferencia de terminología como usted lo implica, sino que se está convirtiendo en un argumento de muro de ladrillos sin ninguna buena razón. Solo estaba tratando de sugerir una edición menor para que hicieras tu respuesta, no tratando de entrar en una pelea.
esponjoso
0

5 GB desde una unidad óptica deberían ser iguales, si son JPG o texto. Transferido a través de la red, recuerdo los tiempos de los módems, que tenían, dependiendo del hardware, una compresión incorporada, de modo que un JPG de 5 GB ya comprimido no se comprimiría más, pero un texto de 5 GB normalmente tendría mucho potencial para compresión.

Entonces, ¿por qué no se usa esto para discos duros? ¿Tal vez necesitaría demasiada lógica en el disco duro, demasiado vulnerable a la compresión que calienta demasiado el disco duro y demasiado fácil de comprimir datos explícitamente, si lo desea? Tal vez existe para algunas unidades?

usuario desconocido
fuente