¿Cómo detengo el micro-tartamudeo de Emacs y la alta utilización de la CPU causada por las llamadas en segundo plano a git?

Pregunta:

Al usar Emacs en Windows, tengo problemas debido a las invocaciones en segundo plano de git.exe . Los mismos problemas pueden aplicarse en Linux, aunque las llamadas al proceso más livianas pueden hacerlas imperceptibles.

Síntomas

  • De vez en cuando, Windows informará que "Git se ha bloqueado", independientemente de la ventana de escritorio activa.
  • En el Administrador de tareas, aparecen uno o dos procesos git.exe cada pocos segundos y desaparecen nuevamente.
  • En Emacs, ocurren micro-tartamudeos aleatorios.

Intentos de diagnóstico

  • Usando “Process Explorer” (procexp.exe), se puede encontrar que los procesos git.exe son subprocesos de Emacs.
  • Ocurren cada vez que se abre un archivo dentro de un directorio con versión de git. Más directorios de este tipo → más tartamudeo.
  • Hacer Mx trace-function RET call-process RET con cuatro archivos abiertos en dos repositorios de git muestra más de 30 invocaciones de git por ciclo. Una gran cantidad de llamadas sincrónicas definitivamente explica la tartamudez.

Respuesta:

Solución

Los problemas resultaron ser causados ​​por la variable de personalización auto-revert-check-vc-info .

Si esta configuración está activa, el software de control de versiones, git en mi caso, se invocará cada segundo de auto-revert-interval (predeterminado 5) para cada repositorio, lo que provocará el comportamiento descrito.

Las únicas soluciones que encontré fueron aumentar el intervalo (contraproducente) y deshabilitar auto-revert-check-vc-info (aceptable para mí).

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım