¿Por qué el comando cp es 4 veces más lento que copiar en Finder en OS X 10.6?

Accidentalmente me topé con este problema:

¡Copiar un archivo zip de 119 MB tomó 4 veces más en Terminal (cp) que en Finder!

Copié un archivo de 119 MB de tamaño en la Terminal time cp file.zip file2.zipy tardé unos 20 segundos.

Como esto me pareció bastante lento, fui al Finder, seleccioné el mismo archivo y presioné Cmd-D(duplicar) y tardé menos de 5 segundos en crear la copia, ¡eso es solo el 25% del tiempo que tardé con cp!

¿Hay una explicación para ello? ¿Podría ser esto sistemático?

Hardware/software usado

  • MacBook 13" blanco (2007)
  • OS X 10.6.8
  • Disco duro interno WDC WD10JPVT-00A1YT0

realmente parece ser un problema de caché: probé el orden contrario con otro archivo y lo copié primero en Finder y luego en Terminal, y en este caso también la segunda copia fue mucho más rápida.

Un solo punto de datos probablemente no sea suficiente aquí, tal vez cpen la Terminal cargó el archivo en el caché de la unidad (o en el búfer de archivos de OS X) para que la copia del Finder no tuviera que volver a leer el archivo. ¿Puede ejecutar algunas pruebas adicionales y también cambiar el orden (copiar con Finder primero, con Terminal después)?
@patrix: gracias por tu comentario, parece ser un problema de caché. Primero probé con otro archivo en Finder y luego en Terminal y, como era de esperar, el segundo fue más rápido.

Respuestas (1)

Dado que tengo un sistema mucho más nuevo, no pude probar con precisión con un archivo de 119 MB, ya que tomó menos de un segundo copiarlo en la Terminal. Así que creé varios archivos mucho más grandes, hasta 2 GB, usando ddy /dev/randomcomo fuente e hice duplicados. Luego reinicié y luego hice copias cronometradas de cada uno de los conjuntos, uno en Terminal y el otro en Finder. De esta forma, no había nada en la caché/memoria del disco durante las operaciones de copia posteriores en cada aplicación para cada conjunto.

Los tiempos fueron casi idénticos, tanto como para ser los mismos para este propósito de prueba. Digo casi idéntico ya que en Terminal usé el timecomando y en Finder usé la manecilla de segundos del reloj. Entonces, en su caso, el archivo definitivamente todavía estaba en la memoria cuando se realizó la segunda operación de copia.

¡Gracias por intentarlo! De hecho, parecía ser un problema de caché (ver mi edición).