Je reçois un spin de CPU dans Emacs Elisp, dans le module C # FlyMake. (Flymake est le module d'EMACS qui exécute périodiquement une version, puis met en évidence toutes les erreurs de syntaxe ou les avertissements dans le tampon actuel.) P>
Je suis sur le point de marcher dans le code, de rechercher des endroits probables où un spin pourrait se produire. p>
Pendant que je suis à cela, quelqu'un a-t-il des suggestions de déterminer le spin? Y a-t-il quelque chose dans Emacs qui me permet d'arrêter l'exécution et de voir où elle s'est arrêtée? p>
4 Réponses :
http://www.gnu.org/s/ emacs / manuel / html_node / elisp / débogage.html pourrait vous aider p>
Utiliser M-x SET-Variable CODE> Pour définir
Débogou-on-Quit code> à
t code>. Ensuite, lorsque le problème se produit, frappez C-G KBD> et le débogueur vous donnera une backtrage de ce qui était en cours d'exécution lorsque vous l'avez arrêté. P>
Il y a aussi M-x Toggle-déboguant-on-cessation.
Flymake Définit une minuterie de 1 seconde pour chaque tampon que le mode FlyMake est activé, de vérifier si le tampon a été modifié plus de Si vous avez beaucoup de tampons ouverts (plusieurs centaines) en mode FlyMake, cela peut dévorer une quantité étonnamment grande de CPU, j'ai une version patchée de FlyMake qui possède une seule minuterie globale qui la corrige et un Peu d'autres questions: https://github.com/illusori/emacs-flymake P>
Cela pourrait ne pas être le même problème pour vous, mais pour moi, cela verrouille Emacs up lors de l'ouverture du mode de bureau avec 600 fichiers ouverts, j'avais de la chance d'obtenir une clé de clavier traitée toutes les 15 minutes. P> Flymake-no-modifications-Timeout code> secondes. < / p>
Merci, Sam, qui a l'air très utile, je vais l'essayer.
sur OS X, j'ai eu un problème de sondage similaire dans lequel FlyMake accrocherait Emacs lors de l'ouverture d'un nouveau fichier (même avec seulement quelques tampons ouverts). Activation de Fixation de GDB à EMACS renvoyé ce qui suit: p> débogué-on-quitter code> n'a pas aidé, car toute l'interface graphique verrouillée.
(setq flymake-gui-warnings-enabled nil)