iTerm / Terminal OS X tarda en abrir un shell


14

Estoy usando OS X 10.8 y últimamente me doy cuenta de que iTerm2 a veces puede ser bastante lento al abrir un nuevo shell. Toma alrededor de 5 segundos antes de que pueda hacer algo. Puede que no parezca mucho, pero trabajo mucho en el shell para que pueda ser bastante molesto.

Estoy usando ZSH con oh-my-zsh.

He intentado Terminal, desinstalando oh-my-zsh, borrando todo lo innecesario de los archivos de inicio (.zshenv, .zlogin, .zprofile, .zshrc, .zlogout) y borrando los archivos ASL en / var / log / asl y aunque baja un poco (como 0.20s), no hay nada que lo reduzca a bastante instantáneo o incluso por debajo de 3.0s.

¿Alguien tiene otra idea?


Preguntas relacionadas: 31403 , 41743 , 236953 , 444614
Lri

¿Has intentado cambiar el comando para nuevos shells a algo así login -pfq username /usr/local/bin/zsh?
Lri

@ lauri-ranta: Intenté todo en esos otros hilos, pero fue en vano. Intentar con "login -pfq username / usr / local / bin / zsh" tampoco hizo nada.
Dimitri

Para ver si está relacionado con shell o iTerm2: ¿cuánto tiempo se tarda en iniciar un nuevo shell? (entrando zshen una ventana de terminal ya abierta)?
Matteo

añadir a .zshrc:[ $((RANDOM & 1)) -eq 0 ] && do not sleep 5
theoden8

Respuestas:


18

Borrar inicio de sesión /var/log/asl, es decir,

rm -rf /var/log/asl/*.asl

1
¿Podría explicar POR QUÉ esta carpeta de registro está ralentizando iterm y hay algo que se pueda hacer para evitar que este problema suceda?
David

2
@david puede consultar este enlace para comprender la razón por la cual las nuevas pestañas son lentas. apple.stackexchange.com/a/71930/89583
Archan Mishra

Wow --- muchas gracias --- por iterm2 parece que la respuesta es usar la sugerencia en la parte inferior de esa página (/ bin / bash -il) del tipo que recibió un voto negativo a -1. Funciona genial.
David

12

Según el comentario de Archan Mishra anterior, para iTerm 2 la respuesta es configurar un comando de terminal personalizado /bin/bash -il que omita la búsqueda de los registros de ASL del sistema por completo. iterm2 se abre al instante ahora.


1

Estos son los pasos que he utilizado para optimizar la velocidad de inicio de mi shell y reducir el retraso en la ejecución de comandos:

  1. Si está utilizando powerlevel9k, le recomendaré que cambie inmediatamente a powerlevel10k .

Powerlevel10k es un tema para Zsh. Enfatiza la velocidad, la flexibilidad y la experiencia lista para usar. Es una reimplementación del popular tema Powerlevel9k zsh. Se ve exactamente igual dada la misma configuración pero hace que la solicitud sea 10-100 veces más rápida. Está optimizado en todos los niveles de la pila, hasta el uso de una versión parcheada de libgit2 que puede escanear un repositorio 4 veces más rápido que el original. Puede eliminar el retraso de inicio de Zsh incluso si no es causado por un tema con características como Instant Prompt.

  1. Vaya a Preferencias -> Perfiles -> General -> Comando y seleccione la opción Comando en lugar de Iniciar sesión Shell y pegue el siguiente comando en el cuadro cercano.
login -pfq username /usr/local/bin/zsh -il

No vería el último tiempo de inicio de sesión impreso al comenzar una nueva pestaña ahora. Si zsh no está presente en la ubicación / usr / local / bin / zsh, deberá instalar zsh usando brew. El zsh predeterminado proporcionado por mac está en / usr / bin / zsh y podría estar usando una versión anterior como 5.2, lo que puede causar una velocidad lenta cuando se usa con iTerm u oh-my-zsh.

  1. Para pegar rápidamente en zsh, ejecute el siguiente comando en la terminal.
mkdir -p $ZSH_CUSTOM/lib && touch $ZSH_CUSTOM/lib/misc.zsh
  1. El punto 2 ya debería ocuparse de los tiempos de inicio de sesión lentos. Pero solo por seguridad, ejecute el siguiente comando
mkdir -p .hushlogin
  1. Hay toneladas de complementos que podría estar usando que son lentos y crean retraso. Debe señalar estos complementos y eliminarlos. Para esto, necesitará perfiles zsh. Siga este enlace para más detalles:

https://stevenvanbael.com/profiling-zsh-startup


¡Bienvenido a Super User! No publique la misma respuesta a varias preguntas. Si la misma información realmente responde ambas preguntas, entonces una pregunta (generalmente la más nueva) debería cerrarse como un duplicado de la otra. Puede indicar esto votando para cerrarlo como un duplicado o, si no tiene suficiente reputación para eso, levante una bandera para indicar que es un duplicado. De lo contrario, adapte su respuesta a esta pregunta y no solo pegue la misma respuesta en varios lugares.
DavidPostill
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.