Ich schreibe ein Dokument und habe ein Problem mit der Leistung von Emacs, von dem ich glaube, dass sie erst gestern erschienen ist. Ich habe keine Änderungen an meiner Init-Datei vorgenommen oder neue Pakete installiert.
Das Problem ist, dass es beim Schreiben eine sehr merkliche Verzögerung zwischen dem Drücken der Buchstaben auf der Tastatur und dem Anzeigen auf dem Bildschirm gibt. Manchmal sehe ich sie immer noch auf dem Bildschirm drucken, nachdem ich das Wort eingegeben habe.
Ich weiß nicht, ob es außer der Tippgeschwindigkeit noch andere Probleme gibt (ich kann nur vermuten, dass es solche gibt), aber ich habe sie nicht bemerkt.
Was kann dieses Problem verursachen?
Liegt es an Emacs oder an der Leistung meines PCs? Welche Variablen beeinflussen im Allgemeinen die Leistung von Emacs?
Meine Emacs-Version ist GNU Emacs 24.3.1
Der aktive Hauptmodus ist:
- Latex
und die kleinen aktiven Modi sind:
- Automatisch vervollständigen
- Automatische Komposition
- Automatische Komprimierung
- Automatische Verschlüsselung
- Blink-Cursor
- Dateiname-Schatten
- Font-Sperre
- Global-Auto-Complete
- Global-Font-Lock Global-Hl-Zeile
- Zeilennummer
- Mausrad
- Shell-Dirtrack
- Show-Paren
- Smartparens
- Smartparens-Global
- Tooltip Transient-Mark
quelle
C-h m
Zeigt den Hauptmodus und alle aktiven Nebenmodi an. Sie können jeden Nebenmodus langsam deaktivieren, bis Sie die Ursache gefunden haben. Es könnte der Hauptmodus selbst sein, aber die Nebenmodi sind die wahrscheinlichsten Verdächtigen. Ohne die Angabe der von Ihnen verwendeten Modi würde jeder hier nur im Dunkeln stechen, was mit Ihrem Problem los ist. Ich habe eine seltene Situation, die bei bestimmten Bildern auftritt - z. B. wenn mir jemand eine E-Mail mit einem Telefonsymbol oder anderen speziellen Symbolen im iPhone sendet -, aber dies ist ein isoliertes Problem bei der Verlangsamung, das durch spezielle Symbole verursacht wird.linum-mode
Verlangsamt die Leistung in großen Puffern.nlinum-mode
geschrieben von Stefan ist besser für größere Puffer.Antworten:
Emacs hat ungefähr 50.000 interne Variablen und ein paar Tausend externe Pakete, die im Durchschnitt aus jeweils ein paar Dutzend Variablen bestehen. Sie können nicht erwarten, dass dies allgemein von jemandem beantwortet wird. :-)
Sie können dies einfach anhand des Kommentarthreads unter Ihrer Frage feststellen. Es gibt ein halbes Dutzend verschiedene Vorschläge, die alle gleichermaßen gültig sind.
Was können Sie tun, um das Problem zu lokalisieren?
Option 1: Deaktivieren Sie die Modi
Deaktivieren Sie die von Ihnen aufgelisteten Nebenmodi und finden Sie heraus, mit welchem Sie das Leistungsproblem lösen können. Ich würde beginnen mit
smartparens
,auto-complete
,line-number
undfont-lock
, und dann die Liste nach unten folgen."Ich hatte dieses Problem gestern nicht" bedeutet sehr wenig, verlassen Sie sich nicht zu stark darauf. Deaktivieren Sie einfach die Nebenmodi, bis sie behoben sind.
Wenn keiner der Nebenmodi Ihr Problem behebt, können Sie Teile Ihrer Init-Datei auskommentieren, bis Sie herausfinden, welches Snippet dies verursacht hat. Stellen Sie auf jeden Fall eine neue Frage, wenn Sie etwas Bestimmtes haben.
Option 2: Der Profiler
M-x profiler-start RET RET
(die zweiteRET
ist zu bestätigencpu
);M-x profiler-report
.Dadurch erhalten Sie einen Puffer, der die von jeder Funktion benötigte CPU-Zeit beschreibt. Wenn Sie
TAB
auf eine Zeile tippen, wird diese erweitert, um die darin enthaltenen Funktionen anzuzeigen. Navigieren Sie durch diesen Puffer, bis Sie herausfinden, welche Funktion so viel CPU-Zeit benötigt.Was mache ich danach?
Sobald Sie die Funktion oder das Paket oder das Snippet gefunden haben, die bzw. das eine Verzögerung verursacht, können Sie (in keiner bestimmten Reihenfolge):
M-x PACKAGE-bug-report
.M-x report-emacs-bug
.help-gnu-emacs
Mailingliste um Hilfe bitten .quelle