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?
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
et font-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
- Invoke
M-x profiler-start RET RET
(le second RET
est à confirmer cpu
);
- Faites un peu de frappe, de préférence un paragraphe entier ou plus;
- Invoquer
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):
- Posez une nouvelle question ici concernant ce mode mineur (ou cette fonction ou cet extrait de code).
- Signaler un bogue au mainteneur du paquet.
- Vérifiez les commentaires en haut du fichier source du paquet. Si elle contient une URL (spécialement sur github), il y a probablement un outil de suivi des problèmes.
- Certains paquets offrent une commande comme
M-x PACKAGE-bug-report
.
- Son courrier électronique doit figurer en haut du fichier source du paquet.
- S'il s'agit d'un package intégré, vous pouvez le signaler avec
M-x report-emacs-bug
.
- Même pour les paquets qui ne sont pas intégrés, vous pouvez demander de l’aide sur la
help-gnu-emacs
liste de diffusion.
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.