Aufbau:
- Ein System
- Betriebssystem Windows 10 als Dual Boot
- OS Ubuntu 15.10 als Dual Boot
- Emacs 25.0.1 mit GUI
Ich habe eine dot-emacs
Datei und alles in meinem .emacs.d
Ordner (die Pakete befinden sich auch in .emacs.d
). Alle diese Dateien befinden sich in einem Dropbox-Ordner.
Unter Windows 10: Ich habe das dot-emacs
und .emacs.d
vom Basisordner in Windows mit den Speicherorten in Dropbox verknüpft .
Unter Linux / Ubuntu 15.10: Ich habe auch den dot-emacs
und .emacs.d
von meinem Ubuntu- Ausgangsordner (/ home / user /) zu den Speicherorten in Dropbox verlinkt.
Alle mit Emacs verbundenen Dateien werden in einem Dropbox-Ordner auf verschiedenen Betriebssystemen gespeichert.
Windows und Linux laufen als Dual Boot auf derselben Festplatte, also auch auf derselben Hardware.
Wenn ich Emacs unter Windows starte, dauert der Start 7,4 Sekunden.
Wenn ich Emacs unter Linux starte, dauert der Start nur 2,3 Sekunden.
Dies gilt sowohl für den Emacs mit grafischer Benutzeroberfläche als auch für Version 25.0.1. Beide Betriebssysteme befinden sich auf demselben Computer und auf demselben SSD-Laufwerk. Es ist also auch die gleiche Hardware.
Die folgenden Dinge sind auf dem Betriebssystem (Windows 10 und Ubuntu 15.10) identisch:
- Emacs-Software, Version 25.0.1
- Konfigurationsdateien (.emacs.d)
- Eine Festplatte (alle Dateien in `.emacs.d) und beide Betriebssysteme befinden sich auf derselben SSD).
- Hardware
Ein Unterschied:
- Compiled Emacs für Windows oder Linux wird auf Windows- bzw. Linux-Plattformen ausgeführt. Das ist der einzige Unterschied.
Ich habe Probleme zu verstehen, warum Emacs unter Ubuntu merklich kürzere Startzeiten haben als Windows.
emacs -Q
.(message emacs-init-time)
die Startzeit messen. Dies ist meines Wissens nicht an eine Funktion gebunden. Wie könnte ich esemacs -Q
dann messen ?M-x emacs-init-time RET
Antworten:
Op-ed: Windows ist nur langsam.
Ich benutze Emacs regelmäßig sowohl unter Windows (Cygwin und native) als auch unter GNU / Linux (Arch), und das habe ich auch bemerkt. Ich glaube, die Antwort ist, dass Linux in vielen Bereichen einfach schneller ist als Windows, insbesondere bei Dateisystemoperationen 1 und Threading / Forking-Operationen 2 .
Ich denke, der Unterschied in der Leistung wird am deutlichsten durch die Verwendung von git und insbesondere von Magit veranschaulicht (da es einige Befehle für den Statuspuffer ausführt). Git ist unter Windows fürchterlich langsam. Tatsächlich ist es so langsam, dass ich unter Windows häufig Code in meinem Dropbox-Ordner bearbeite, darauf warte, dass er mit meinem Linux-VPS synchronisiert wird, und dann Magit über SSH verwende, anstatt ihn einfach unter Windows zu verwenden.
Tun
time git status
auf dem Emacs Master Zweig dauert durchschnittlich 0,025 Sekunden auf Bogen für mich. Unter Windows (nativ) dauert es 0,075 bis 0,100 Sekunden, unter Windows (cygwin) 0,200 Sekunden. Das scheint nicht viel zu sein, aber das bedeutet, dass es unter Windows 3-4x langsamer ist.Ich sollte auch beachten, dass bestimmte Antivirensoftware (insbesondere McAfee) massive Verlangsamungen verursachen kann. Wenn der On-Access-Scanner von McAfee aktiviert ist, geht es mir merklich langsamer. Cygwins
git status
kann bis zu 2 Minuten dauern! Erst nach dem Ausschalten erhalte ich die oben angegebenen Zeiten.Nebenbei: Ich habe gerade die Variable gefunden
magit-refresh-verbose
, die mal den Status aktualisiert. Hier einige Male, um denmagit-status
Puffer im Emacs-Hauptzweig zu aktualisieren:Windows (native)
Windows (Cygwin)
GNU / Linux (Arch, schlechtere Hardware, VPS)
Cygwins höhere Geschwindigkeit überraschte mich.
http://www.slideshare.net/PrincipledTechnologies/comparing-file-system-performance-red-hat-enterprise-linux-6-vs-microsoft-windows-server-2012
/programming/12878980/speed-performance-of-a-qt-program-windows-vs-linux
quelle
exec-path
? ( stackoverflow.com/questions/16884377/… ) In meinem Fall hat sich die Geschwindigkeit erheblich verbessert.exec-path
.Vielleicht können Sie versuchen, den Emacs-Server so einzurichten, dass Sie eine bessere Erfahrung haben. Wenn Sie diesen Ansatz verwenden oder Emacs als Daemon ausführen, können Sie mit Emacsclient neue Fenster starten, ohne eine andere Emacs-Instanz zu laden. Es ist ein schöner Ansatz. Ich habe es nicht in Windows getestet, aber hier ist ein Link, der erklärt, wie man es benutzt. Ich hoffe es hilft dir, Mann.
Emacs Server
quelle