J'écris un document et j'ai un problème avec les performances d'Emacs qui, je pense, est apparu hier. Je n'ai apporté aucune modification à mon fichier init ni installé de nouveaux packages.
Le problème est que pendant que j'écris, il y a un décalage très important entre le fait d'appuyer sur les lettres du clavier et de les afficher à l'écran. Parfois, je les regarde imprimer encore à l'écran après avoir fini de taper le mot.
Je ne sais pas s'il existe d'autres problèmes que la vitesse de frappe (je ne peux que supposer qu'il y en a), mais je ne les ai pas remarqués.
Qu'est-ce qui peut causer ce problème?
Est-ce dû à Emacs ou aux performances de mon ordinateur? De manière générale, quelles sont les variables qui affectent les performances d'Emacs?
La version de mon Emacs est GNU Emacs 24.3.1
Le principal mode actif est:
- Latex
et les modes actifs mineurs sont:
- Remplissage automatique
- Composition automatique
- Compression automatique
- Cryptage automatique
- Curseur Blink
- Nom du fichier - Ombre
- Verrouillage de la police
- Global-Auto-Complete
- Global-Font-Lock Ligne Global-Hl
- Numéro de ligne
- Roulette de la souris
- Shell-Dirtrack
- Show-Paren
- Smartparens
- Smartparens-Global
- Info-bulle transitoire
la source
C-h m
révélera le mode majeur et tous les modes mineurs actifs. Vous pouvez désactiver lentement chaque mode mineur jusqu'à ce que vous en trouviez la cause. Ce pourrait être le mode majeur lui-même, mais les modes mineurs sont les suspects les plus probables. Sans spécifier les modes que vous utilisez, tout le monde ici serait juste en train de poignarder dans le noir à propos de votre problème. Il existe une situation rare qui se produit avec des images spéciales - par exemple, lorsque quelqu'un m'envoie par courrier électronique quelque chose avec un symbole de téléphone ou d'autres symboles spéciaux sur l'iPhone - mais il s'agit d'un problème de ralentissement isolé causé par des symboles spéciaux.linum-mode
ralentit les performances dans les grands tampons.nlinum-mode
écrit par Stefan est préférable pour les grands tampons.Réponses:
Emacs contient environ 50 000 variables internes et quelques milliers de packages externes, avec une moyenne de quelques dizaines de variables chacune. Vous ne pouvez pas vous attendre à ce que quelqu'un réponde à cette question de manière générale. :-)
Vous pouvez voir cela simplement en regardant le fil de commentaires sous votre question. Il y a une demi-douzaine de suggestions différentes, toutes également valables.
Que pouvez-vous faire pour identifier le problème?
Option 1: modes de désactivation
Commencez à désactiver les modes mineurs que vous avez énumérés et voyez lequel de ces problèmes résout vos problèmes de performances. Je commencerais avec
smartparens
,auto-complete
,line-number
etfont-lock
, puis suivez la liste."Je n'avais pas ce problème hier" signifie très peu, ne comptez pas trop dessus . Commencez simplement à désactiver les modes mineurs jusqu'à ce que quelque chose le résolve.
Si aucun des modes mineurs ne résout votre problème, commencez à commenter des parties de votre fichier init jusqu'à ce que vous trouviez l'extrait qui l'a causé. Dans tous les cas, posez une nouvelle question lorsque vous avez quelque chose de plus spécifique.
Option 2: le profileur
M-x profiler-start RET RET
(le secondRET
est à confirmercpu
);M-x profiler-report
.Cela vous donnera un tampon décrivant le temps CPU pris par chaque fonction. Frapper
TAB
sur une ligne la développe pour afficher les fonctions qu’elle contient. Naviguez dans cette mémoire tampon jusqu'à ce que vous trouviez quelle fonction prend le plus de temps processeur.Qu'est-ce que je fais après?
Une fois que vous avez trouvé la fonction, le package ou l'extrait de code qui cause un décalage, vous pouvez (sans ordre particulier):
M-x PACKAGE-bug-report
.M-x report-emacs-bug
.help-gnu-emacs
liste de diffusion.la source