Acabo de darme cuenta de que las utilidades de línea de comandos como ls
( /bin/ls
), touch
( /usr/bin/touch
), cat
( /bin/cat
), etc. son muy lentos cuando los ejecuto desde Terminal o iTerm en mi MacBook. Por ejemplo:
-
ls
'ing mientras está en un directorio vacío tarda 1 segundo (también tarda 1 segundo en un directorio no vacío, tanto con muchos archivos como con pocos); -
touch
'ing un nuevo archivo tarda 1 segundo (también tarda 1 segundo entouch
un archivo existente); -
cat
La creación de un archivo vacío tarda 1 segundo (también hay un retardo de 1 segundo antes de que ocurra algo cuandocat
un archivo no vacío).
He tratado de diagnosticar esto de muchas maneras pero sin éxito. No creo que sea un problema del sistema de archivos, ya que:
-
He ejecutado la Utilidad de Discos y no informa de ningún problema.
-
Todo parece funcionar bien en Finder, por ejemplo, el contenido del directorio se muestra instantáneamente en Finder.
-
He instalado GNU coreutils usando Homebrew y he intentado usar
gls
,gtouch
,gcat
etc., y todas las operaciones que he enumerado anteriormente ocurren instantáneamente cuando se ejecutan con la versión GNU.
¿Alguna idea de lo que puede estar pasando? ¿Alguna idea sobre cómo solucionarlo?
EDITAR: Cuando reinicio el ordenador, o pruebo con otro usuario, estos problemas desaparecen temporalmente, pero al cabo de unos minutos parecen reaparecer de nuevo. Otra cosa extraña que he notado:
$ time date
Wed Jan 28 10:07:11 PST 2015
real 0m0.151s
user 0m0.001s
sys 0m0.003s
$ time date
Wed Jan 28 10:07:13 PST 2015
real 0m0.029s
user 0m0.001s
sys 0m0.002s
$ time date
Wed Jan 28 10:07:16 PST 2015
real 0m1.005s
user 0m0.001s
sys 0m0.002s
$ time date
Wed Jan 28 10:07:18 PST 2015
real 0m1.005s
user 0m0.001s
sys 0m0.002s
Esto ocurre con todas las utilidades que he probado, mkdir
, scp
, sftp
, more
, cat
etc.: La primera vez que lo ejecuto después de un reinicio, es medianamente lento. La segunda vez que lo ejecuto, es medio-rápido. Todas las veces siguientes que lo ejecuto, es lento.
2 votos
¿Puedes correr
time ls
,time touch foo
etc. y copiar/pegar el resultado en tu pregunta?2 votos
@patrix: Para todos los casos que he enumerado, el
time
La salida es muy cercana a la real 0m1.004s, user 0m0.002s, sys 0m0.002s, más o menos ~0.001s.0 votos
(Mientras que las versiones de GNU tienen en cambio un real de alrededor de 0m0.004s)
0 votos
¿Aparece algo extraño en el registro (visible a través de Console.app) cuando ejecutas estos comandos?
0 votos
@BartArondson -- ¡¡Gracias por esa sugerencia!! Fue a través del registro en Console.app que finalmente pude resolver el misterio.