Obtuve 20.3 Gig de archivos y carpetas con un total de más de 100k elementos. Dupliqué todos esos archivos en un directorio de Windows 10, y me tomó 3 horas de copia insoportable. Hecho.
El otro día, inicié en Linux Fedora 24, volví a copiar la misma carpeta y ¡bam! Me tomó solo 5 minutos duplicarlo en el mismo lugar pero en un directorio diferente.
¿Por qué Linux es tan rápido? ¿Y Windows es minuciosamente lento?
Hay una pregunta similar aquí
¿Es el algoritmo de copia de archivos (Ubuntu) Linux mejor que Windows 7?
Pero la respuesta aceptada es bastante deficiente.
linux
windows
performance
Jones G
fuente
fuente
Respuestas:
Los conceptos básicos se desglosan en algunos componentes clave del sistema total: el elemento de la interfaz de usuario (la parte gráfica), el núcleo en sí (lo que habla con el hardware) y el formato en el que se almacenan los datos (es decir, el sistema de archivos )
Retroceder,
NTFS
ha sido de facto para Windows durante algún tiempo, mientras que el de facto para las principales variantes de Linux es elext
sistema de archivos. El sistema de archivos NTFS en sí mismo no ha cambiado desde Windows XP (2001), muchas características que existen (como la reducción / curación de particiones, NTFS transaccional, etc.) son características del sistema operativo (Windows Vista / 7/8/10) y no NTFS en sí. Elext
sistema de archivos tuvo su última versión estable importante (ext4
) en 2008. Dado que el sistema de archivos en sí mismo es lo que gobierna cómo y dónde se accede a los archivos, si está utilizandoext4
, es probable que note una mejora en la velocidad sobre NTFS; Sin embargo, tenga en cuenta que si lo usaext2
, puede notar que es comparable en velocidad.También podría ser que una partición esté formateada en fragmentos más pequeños que la otra. El valor predeterminado para la mayoría de los sistemas es un tamaño de clúster
4096 byte
1 , 2 , pero si formateó suext4
partición en algo así como16k
3 , cada lectura en elext4
sistema obtendría 4 veces más datos que el sistema NTFS (lo que podría significar 4 veces los archivos dependiendo de lo que esté almacenado dónde / cómo y qué tan grande, etc.). La fragmentación de los archivos también puede desempeñar un papel en las velocidades. NTFS maneja la fragmentación de archivos de manera muy diferente alext
sistema de archivos, y con más de 100k archivos, hay una buena posibilidad de que haya algo de fragmentación.El siguiente componente es el núcleo en sí (no la interfaz de usuario, sino el código que realmente habla con el hardware, el verdadero sistema operativo). Aquí, sinceramente, no hay mucha diferencia. Ambos núcleos se pueden configurar para hacer ciertas cosas, como el almacenamiento en caché / almacenamiento en disco, para acelerar las lecturas y las escrituras percibidas, pero estas configuraciones generalmente tienen las mismas compensaciones independientemente del sistema operativo; por ejemplo, el almacenamiento en caché puede parecer que aumenta enormemente la velocidad de copia / guardado, pero si pierde energía durante la escritura en caché (o extrae la unidad USB), perderá todos los datos que no se escriben realmente en el disco y posiblemente incluso corrompe los datos ya escritos al disco
Como ejemplo, copie muchos archivos en una unidad USB con formato FAT en Windows y Linux. En Windows puede tardar 10 minutos, mientras que en Linux tardará 10 segundos; Inmediatamente después de haber copiado los archivos, extraiga la unidad de manera segura expulsándola. En Windows, se expulsaría inmediatamente del sistema y, por lo tanto, podría quitar la unidad del puerto USB, mientras que en Linux podría tomar 10 minutos antes de que realmente pudiera quitar la unidad; Esto se debe al almacenamiento en caché (es decir, Linux escribió los archivos en la RAM y luego los escribió en el disco en segundo plano, mientras que Windows, sin caché, escribió los archivos inmediatamente en el disco).
La última es la interfaz de usuario (la parte gráfica con la que interactúa el usuario). La interfaz de usuario podría ser una ventana bonita con algunos gráficos geniales y barras agradables que me dan una idea general de cuántos archivos se están copiando y qué tan grande es todo y cuánto tiempo puede tomar; La interfaz de usuario también puede ser una consola que no imprime ninguna información, excepto cuando se hace. Si la interfaz de usuario tiene que pasar primero por cada carpeta y archivo para determinar cuántos archivos hay, más qué tan grandes son y dar una estimación aproximada antes de que realmente pueda comenzar a copiar, entonces el proceso de copia puede tomar más tiempo debido a que la interfaz de usuario necesita hacer esto. De nuevo, esto es cierto independientemente del sistema operativo.
Puede configurar algunas cosas para que sean iguales (como el almacenamiento en caché del disco o el tamaño del clúster), pero en términos realistas, todo se reduce a cómo todas las partes se unen para que el sistema funcione y, más específicamente, con qué frecuencia se actualizan esas piezas de código. El sistema operativo Windows ha recorrido un largo camino desde Windows XP, pero el subsistema de disco es un área que no ha visto mucho TLC en el sistema operativo en todas las versiones durante muchos años (en comparación con el ecosistema Linux que parece ver algunos nuevos FS o mejora con bastante frecuencia).
Espero que agregue algo de claridad.
fuente