Emacs unter Windows 7 ist sehr langsam, wenn sich der Computer außerhalb des Unternehmensnetzwerks befindet

8

Ich verwende GNU Emacs 24.3 unter Windows 7 und habe normalerweise keine Probleme mit der Geschwindigkeit / Reaktionsfähigkeit.

Ich starte Emacs mit runemacs.exe

Wenn ich jedoch auf Reisen bin und versuche, über VPN eine Verbindung zu meinem Unternehmensnetzwerk herzustellen (oder einfach offline ohne Verbindung zum Unternehmensnetzwerk zu arbeiten), wird Emacs oft unglaublich langsam - das Öffnen eines Puffers kann viele Minuten dauern, dies ist jedoch nicht der Fall auf Tastaturbefehle reagieren.

(Ich bin immer noch sehr an einer Lösung interessiert.) Alle relevanten Text- und Konfigurationsdateien werden in meinem Benutzerverzeichnis gespeichert, C:\Users\myusername.domainname\Documentsdas sich auf der lokalen Festplatte befindet (daher sollte kein Zugriff auf Remoteserver erforderlich sein). Ich frage mich jedoch, ob Windows 7 dies möglicherweise versucht Synchronisieren Sie diese Dateien mit einem Server

Ich verwende die Funktion "Offlinedateien" auch für andere Verzeichnisse und frage mich, ob sich dies auf mein Problem auswirken könnte.

Das Problem tritt nicht nur auf, wenn VPN verwendet wird, sondern auch, wenn der Computer nur offline und nicht mit dem Unternehmensnetzwerk verbunden ist.

Meistens harmlos
quelle
1
Da "Das Problem tritt nicht nur auf, wenn VPN verwendet wird, sondern auch, wenn der Computer nur offline ist und nicht mit dem Unternehmensnetzwerk verbunden ist", ist nicht klar, dass das VPN etwas mit dem Problem zu tun hat.
Joe Corneli
Wie wäre es mit der neuesten öffentlichen Version von Emacs anstelle von 24.3? Gibt es einen Grund, eine ältere Version von Emacs zu beheben, wenn eine neuere stabile Version verfügbar ist?
Lawlist
@lawlist: Danke, ich glaube, ich verwende derzeit Emacs 24.5. Ich werde das morgen überprüfen, wenn ich wieder am Computer bin. Sollte es nicht in jeder stabilen Emacs-Version möglich sein, problemlos in jeder Netzwerkeinstellung zu arbeiten?
Meistens harmlos
1
Warum sollte Emacs DNS-Anfragen stellen? Warum sollte Langsamkeit eher auf DNS-Anfragen als auf eine andere Art von Netzwerkzugriff zurückzuführen sein?
Gilles 'SO - hör auf böse zu sein'
1
lists.gnu.org/archive/html/bug-gnu-emacs/2012-10/msg00230.html bietet einige Hinweise und (setq w32-get-true-file-attributes nil)könnte helfen.
Luís Oliveira

Antworten:

3

Der Grund für dieses Problem kann die Verwendung des recentfModus sein. Sie müssen das Bereinigen nicht verfügbarer Dateien mit dem folgenden Befehl in Ihrem ~ / .emacs (oder ~ / .emacs.d / init.el, wenn Sie es verwenden) deaktivieren:

(setq recentf-auto-cleanup 'never)
Gehirnstrom
quelle
recentfVielen Dank - das sieht vielversprechend aus, aber ich benutze keinen Modus und konnte eine solche Option in meinen .emacs oder init.el nicht finden
MostlyHarmless
1
Ich habe das gleiche Problem wie OP, und das hat mir nicht geholfen.
PaulB
Ich kann mir keinen Grund vorstellen, der in letzter Zeit Auswirkungen haben würde. Es ist einfach eine Liste der letzten Dateien. Sie werden nicht wiederhergestellt oder überprüft.
RichieHH
Eine sehr große aktuelle Datei kann zwar zu einer zeitweiligen Latenz führen, dies scheint jedoch nicht das von OP beschriebene Problem zu sein.
InHarmsWay
3

Ich hatte das gleiche Problem und es scheint, dass es durch den Windows-Anmeldedienst verursacht wird . Die einfachste Lösung besteht darin, es außerhalb Ihres Unternehmensnetzwerks zu deaktivieren, indem Sie den folgenden Befehl in der Befehlszeile ausführen:

net stop netlogon

Wenn Sie wieder im Unternehmensnetzwerk sind, starten Sie es erneut mit

net start netlogon
arvidj
quelle
2

Nicht wenige mögliche Gründe, zwei aus meinem Kopf (hatten diese Probleme in der Vergangenheit.)

  1. Möglicherweise ist in Windows ein Remote-Ordner zugeordnet, und wenn Sie sich außerhalb des lokalen Netzwerks befinden, werden Sie möglicherweise erheblich langsamer (das Verlassen des VPN hilft nicht ganz, tatsächlich kann dies die Situation verschlimmern, da Windows weiterhin versucht, ihn nur gestoppt zu erreichen durch Timeouts.) Neuere Versionen von Windows scheinen ein bisschen besser damit umzugehen, aber immer noch. Versuchen Sie, net use * /deleteeine Eingabeaufforderung auszuführen, und prüfen Sie, ob dies hilfreich ist.

  2. Überprüfen Sie, ob Sie verwenden tramp(ich bezweifle es, da Sie unter Windows arbeiten, aber ich verwende auch Windows zusammen mit Linux und ich verwende es, trampdamit es nicht völlig außer Frage steht.) Wenn ja, versuchen Sie, es tramp-cleanup-all-connectionsaußerhalb des Netzwerks auszuführen .

Wenn all dies oder irgendetwas anderes, was die Leute hier vorschlagen, nicht hilft, müssen Sie möglicherweise eine tiefere Fehlerbehebung durchführen. Das beste Tool, das ich dafür gefunden habe, ist der Prozessmonitor von Sysinternals ( https://technet.microsoft.com/en-us/sysinternals/bb896645 ). Es ist ein komplexes Tier, mit dem man sich befassen muss, und es erfordert zumindest ein grundlegendes Verständnis des Windows-Betriebssystems, aber es ist in der Lage, Rätselraten vollständig aus dem Prozess herauszuholen und den Täter auf Null zu setzen.

Yuri Steinschreiber
quelle