Estoy escribiendo un documento y tengo un problema con el rendimiento de Emacs que creo que apareció ayer. No he realizado ninguna modificación en mi archivo init ni he instalado ningún paquete nuevo.
El problema es que mientras escribo, hay un retraso muy notable entre presionar las letras en el teclado y hacer que aparezcan en la pantalla. A veces los veo todavía imprimiéndose en la pantalla después de haber terminado de escribir la palabra.
No sé si hay otros problemas, excepto la velocidad de escritura (solo puedo suponer que los hay), pero no los he notado.
¿Qué puede causar este problema?
¿Es causado por Emacs o se debe al rendimiento de mi PC? En general, ¿cuáles son las variables que afectan el rendimiento de Emacs?
La versión de mi Emacs es GNU Emacs 24.3.1
El modo activo principal es:
- Látex
y los modos activos menores son:
- Autocompletar
- Composición automática
- Autocompresión
- Cifrado automático
- Cursor de parpadeo
- Nombre-Archivo-Sombra
- Font-Lock
- Global-Auto-Complete
- Global-Font-Lock Global-Hl-Line
- Número de línea
- Rueda de ratón
- Shell-Dirtrack
- Show-Paren
- Smartparens
- Smartparens-Global
- Información sobre herramientas Transient-Mark
fuente
C-h m
revelará el modo mayor y todos los modos menores que estén activos. Puede deshabilitar lentamente cada modo menor hasta localizar la causa. Podría ser el modo principal en sí mismo, pero los modos menores son los sospechosos más probables. Sin especificar qué modos está utilizando, cualquiera aquí estaría apuñalando en la oscuridad lo que está sucediendo con su problema. Tengo una situación rara que ocurre con algunas imágenes especiales, por ejemplo, cuando alguien me envía un correo electrónico con un símbolo de teléfono u otros símbolos especiales en el iPhone, pero ese es un problema aislado de desaceleración causado por símbolos especiales.linum-mode
ralentiza el rendimiento en grandes buffers.nlinum-mode
escrito por Stefan es mejor para buffers más grandes.Respuestas:
Emacs tiene alrededor de 50,000 variables internas y unos pocos miles de paquetes externos con un promedio de unas pocas docenas de variables cada uno, no puede esperar que alguien responda esto en un sentido general. :-)
Puedes ver eso solo mirando el hilo de comentarios debajo de tu pregunta. Hay media docena de sugerencias diferentes, todas igualmente válidas.
¿Qué puedes hacer para identificar el problema?
Opción 1: modos de desactivación
Comience a deshabilitar los modos menores que ha enumerado y vea cuál resuelve su problema de rendimiento. Me gustaría empezar con
smartparens
,auto-complete
,line-number
yfont-lock
, a continuación, siga por la lista."No tuve este problema ayer" significa muy poco, no confíes demasiado en él . Simplemente comience a deshabilitar los modos menores hasta que algo lo resuelva.
Si ninguno de los modos menores soluciona el problema, comience a comentar partes de su archivo de inicio hasta que descubra qué fragmento está causando esto. En cualquier caso, haga una nueva pregunta cuando tenga algo más específico.
Opción 2: el perfilador
M-x profiler-start RET RET
(el segundoRET
es confirmarcpu
);M-x profiler-report
.Eso le dará un búfer que describe el tiempo de CPU que toma cada función. Golpear
TAB
una línea la expande para mostrar las funciones dentro de ella. Navegue por este búfer hasta que descubra qué función está tomando tanto tiempo de CPU.¿Qué hago después?
Una vez que encuentre la función o paquete o fragmento que causa el retraso, puede (sin ningún orden en particular):
M-x PACKAGE-bug-report
.M-x report-emacs-bug
.help-gnu-emacs
lista de correo.fuente