8 votos

¿Cómo puedo depurar zsh cuando el rendimiento del arranque es lento?

Estoy usando Z shell dentro de iTerm2 cada vez que abro una nueva ventana o una nueva pestaña tarda alrededor de 8 - 9 segundos en cargar.

He encontrado información sobre cómo depurar zsh. Me encontré con esto Acelerar mi cáscara también he encontrado un script en ACELERAR ZSH Y OH-MY-ZSH .

Al ejecutar el script obtengo lo siguiente

 for i in $(seq 1 10); do /usr/bin/time /bin/zsh -i -c exit; done
        1.56 real         0.76 user         0.47 sys
        1.30 real         0.74 user         0.44 sys
        1.31 real         0.74 user         0.44 sys
        1.30 real         0.74 user         0.44 sys
        1.31 real         0.74 user         0.44 sys
        1.31 real         0.74 user         0.44 sys
        1.30 real         0.74 user         0.44 sys
        1.29 real         0.74 user         0.44 sys
        1.31 real         0.75 user         0.44 sys
        1.31 real         0.74 user         0.44 sys

Estoy usando el plugin de antígeno.

Alguna idea de qué es lo que añade otros 5 - 6 segundos. ¿Cómo puedo depurar esto?

0 votos

Yo renombraría todos tus archivos zsh de inicio para que no tengas ninguno, luego volvería a añadir el comando que necesitas uno a uno

0 votos

@mmmmmm Gracias por responder. He comentado todo en mi ~/.zshrc archivo. Luego reinicié el sistema operativo (por si acaso se había quedado algo en caché). Todavía estoy recibiendo 8 segundos en la nueva ventana y nueva pestaña.

1 votos

Y ~/.zshenv y ~/.zprofile y ~/.zlogin ? Ans ¿cuál es el comando llamado por iTerm, Terminal.app muestra lo mismo?

7voto

Alvin Puntos 32

He encontrado el problema. El problema no estaba directamente relacionado con .zshrc ya que comentando todo el archivo me dio los mismos resultados. Tenía claro que el problema se producía antes de .zshrc fue cargado. Mi consejo para cualquiera que tenga un problema con zsh es que mire todos los componentes de zsh . Por el artículo, creo que fue o bien .zlogin o .zprofile . zlogin estaba vacío mientras que .zprofile tenía más de 2000 líneas de eval "$(/opt/homebrew/bin/brew shellenv)" . Borrar todo en .zprofile me solucionó el problema, sin embargo momentos después han vuelto a aparecer los comandos duplicados. En mi .zshrc la cuestión era esta:

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/[your-user-name]/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

que he sustituido por

#echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/[your-user-name]/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

No tengo ni idea de por qué homebrew tenía esta configuración en mi .zshrc sin embargo, me he encontrado con otros usuarios que han tenido este problema ver https://github.com/Homebrew/discussions/discussions/446#discussioncomment-1084000

0 votos

Muy buen hallazgo. ¿Alguna posibilidad de que pueda documentar los tiempos de arranque en su Mac después de arreglar / optimizar los archivos dot?

0voto

Oskar Puntos 1242

A modo de comparación, estos son los tiempos del Mac Mini básico, el menos caro y sin oh-my-zsh

for i in $(seq 1 10); do /usr/bin/time /bin/zsh -i -c exit; done
        0.02 real         0.00 user         0.00 sys
        0.01 real         0.00 user         0.00 sys
        0.01 real         0.00 user         0.00 sys
        0.00 real         0.00 user         0.00 sys
        0.00 real         0.00 user         0.00 sys
        0.00 real         0.00 user         0.00 sys
        0.00 real         0.00 user         0.00 sys
        0.00 real         0.00 user         0.00 sys
        0.00 real         0.00 user         0.00 sys
        0.00 real         0.00 user         0.00 sys

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X