Konfiguracja:
- Jeden system
- System operacyjny Windows 10 jako podwójny rozruch
- System operacyjny Ubuntu 15.10 jako podwójny rozruch
- Emacs 25.0.1 z GUI
Mam jeden dot-emacs
plik i wszystko w moim .emacs.d
folderze (paczki również się znajdują .emacs.d
). Wszystkie te pliki znajdują się w jednym folderze Dropbox.
W systemie Windows 10: dowiązałem do dot-emacs
iz .emacs.d
folderu domowego w systemie Windows do lokalizacji w Dropbox.
W systemie Linux / Ubuntu 15.10: dowiązałem również do dot-emacs
iz .emacs.d
mojego katalogu domowego Ubuntu (/ home / user /) do lokalizacji w Dropbox.
Więc wszystkie pliki związane z Emacsem są przechowywane w jednym folderze Dropbox w różnych systemach operacyjnych.
Windows i Linux działają jako podwójny rozruch na tym samym dysku, a więc także na tym samym sprzęcie.
Kiedy uruchamiam Emacsa w systemie Windows, uruchomienie zajmuje 7,4 sekundy.
Kiedy uruchamiam Emacsa w systemie Linux, uruchomienie zajmuje tylko 2,3 sekundy.
Dotyczy to zarówno Emacsa z graficznym GUI, jak i wersji 25.0.1. Oba systemy operacyjne znajdują się na tym samym komputerze na tym samym dysku SSD. Więc to także ten sam sprzęt.
W systemie operacyjnym (Windows 10 i Ubuntu 15.10) następujące rzeczy są identyczne:
- Oprogramowanie Emacs, wersja 25.0.1
- Pliki konfiguracyjne (.emacs.d)
- Jeden dysk twardy (wszystkie pliki w .emacs.d) i oba systemy operacyjne są na tym samym dysku SSD).
- Sprzęt komputerowy
Jedna różnica:
- Skompilowany Emacs dla Windows lub Linux działa odpowiednio na platformie Windows lub Linux. To jedyna różnica.
Próbuję zrozumieć, dlaczego Emacs ma zauważalnie krótszy czas uruchamiania na Ubuntu niż Windows.
emacs -Q
.(message emacs-init-time)
zmierzyć czas uruchamiania. O ile mi wiadomo, nie jest to ograniczone do funkcji. Jak więc mógłbym to zmierzyćemacs -Q
?M-x emacs-init-time RET
Odpowiedzi:
Op-ed: Windows działa powoli.
Regularnie używam Emacsa zarówno na Windowsie (Cygwin i natywnym), jak i GNU / Linux (Arch), i zauważyłem to również. Wierzę, że odpowiedź jest taka, że Linux jest po prostu szybszy niż Windows w wielu obszarach, w szczególności w operacjach systemu plików 1 i operacjach wątkowania / rozwidlania 2 .
Myślę, że różnica w wydajności jest najbardziej widoczna na przykładzie używania git, a zwłaszcza Magit (ponieważ uruchamia całkiem sporo poleceń dla swojego bufora stanu). Git jest strasznie powolny w systemie Windows. W rzeczywistości jest tak powolny, że często edytuję kod w systemie Windows w folderze Dropbox, czekam na zsynchronizowanie go z moim VPS w systemie Linux, a następnie używam Magit przez SSH, zamiast po prostu używać go w systemie Windows.
Wykonanie
time git status
w gałęzi głównej Emacsa zajmuje mi średnio 0,025 sekundy na Arch. W systemie Windows (natywny) zajmuje to 0,075-0,100 sekundy, Windows (cygwin) 0,200 sekundy. To może nie wydawać się dużo, ale oznacza to, że jest 3-4 razy wolniejszy w systemie Windows.Powinienem również zauważyć, że niektóre programy antywirusowe (w szczególności McAfee) mogą powodować ogromne spowolnienia. Po włączeniu skanera McAfee On-Access skaner jest dla mnie zauważalnie wolniejszy. Cygwin
git status
może zająć do 2 minut! Dopiero po wyłączeniu dostaję czasy, które podałem powyżej.Na bok: Właśnie znalazłem zmienną
magit-refresh-verbose
, która odświeża status. Oto kilka razy, aby odświeżyćmagit-status
bufor w głównej gałęzi Emacsa:Windows (natywny)
Windows (cygwin)
GNU / Linux (Arch, gorszy sprzęt, VPS)
Zaskoczyła mnie szybsza prędkość Cygwina.
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
źródło
exec-path
? ( stackoverflow.com/questions/16884377/… ) W moim przypadku znacznie poprawiło to prędkość.exec-path
.Może możesz spróbować skonfigurować emacs-server, aby mieć lepsze wrażenia. Używając tego podejścia lub uruchamiając emacsa jako demona, możesz po prostu użyć emacsclient, aby uruchomić nowe okna, nie ładując innej instancji emacsa. To miłe podejście. Nie testowałem tego w systemie Windows, ale tutaj jest link wyjaśniający, jak go używać. Mam nadzieję, że to ci pomoże.
Serwer Emacsa
źródło