Configuration:
- Un système
- OS Windows 10 en double démarrage
- OS Ubuntu 15.10 en double démarrage
- Emacs 25.0.1 avec GUI
J'ai un dot-emacs
fichier et tout dans mon .emacs.d
dossier (les packages sont également situés dans .emacs.d
). Tous ces fichiers se trouvent dans un dossier Dropbox.
Sous Windows 10: j'ai créé un lien symbolique entre le dot-emacs
et .emacs.d
le dossier de départ de Windows et les emplacements de Dropbox.
Sous Linux / Ubuntu 15.10: J'ai également créé un lien symbolique vers dot-emacs
et .emacs.d
depuis mon dossier d'accueil Ubuntu (/ home / user /) vers les emplacements de Dropbox.
Ainsi, tous les fichiers liés à Emacs sont stockés dans un dossier Dropbox sur différents systèmes d'exploitation.
Windows et Linux fonctionnent en double démarrage sur le même disque, donc également le même matériel.
Lorsque je démarre Emacs sur Windows, il faut 7,4 secondes pour démarrer.
Lorsque je démarre Emacs sous Linux, il ne prend que 2,3 secondes pour démarrer.
C'est à la fois avec Emacs avec une interface graphique et la version 25.0.1. Les deux systèmes d'exploitation sont situés sur le même ordinateur sur le même lecteur SSD. C'est donc aussi le même matériel.
Les éléments suivants sont identiques sur le système d'exploitation (Windows 10 et Ubuntu 15.10):
- Logiciel Emacs, version 25.0.1
- Fichiers de configuration (.emacs.d)
- Un disque dur (tous les fichiers à l'intérieur de `.emacs.d) et les deux OS sont sur le même SSD).
- Matériel
Une différence:
- Emacs compilés pour Windows ou Linux fonctionne respectivement sur la plate-forme Windows ou Linux. Voilà la seule différence.
J'ai du mal à comprendre pourquoi Emacs a un temps de démarrage sensiblement plus court sur Ubuntu que sur Windows.
emacs -Q
.(message emacs-init-time)
pour mesurer le temps de démarrage. Pour autant que je sache, cela n'est pas lié à une fonction. Alors, comment pourrais-je le mesureremacs -Q
alors?M-x emacs-init-time RET
Réponses:
Op-ed: Windows est juste lent.
J'utilise régulièrement Emacs sur Windows (Cygwin et natif) et GNU / Linux (Arch), et je l'ai également remarqué. Je crois que la réponse est que Linux est tout simplement plus rapide que Windows dans de nombreux domaines, notamment dans les opérations de système de fichiers 1 et les opérations de threading / forking 2 .
Je pense que la différence de performances est illustrée de la manière la plus notable lors de l'utilisation de git, et en particulier de Magit (car il exécute plusieurs commandes pour son tampon d'état). Git est horriblement lent sur Windows. En fait, c'est si lent que j'édite souvent du code sous Windows dans mon dossier Dropbox, j'attends qu'il soit synchronisé avec mon VPS Linux, puis j'utilise Magit via SSH, au lieu de simplement l'utiliser sous Windows.
Faire
time git status
sur la branche principale Emacs prend en moyenne 0,025 seconde sur Arch pour moi. Sur Windows (natif), cela prend 0,075-0,100 secondes, Windows (cygwin) 0,200 secondes. Cela peut ne pas sembler beaucoup, mais cela signifie que c'est 3-4x plus lent sous Windows.Je dois également noter que certains logiciels antivirus (McAfee, en particulier) peuvent provoquer des ralentissements massifs. Avec le scanner sur accès de McAfee activé, les choses sont sensiblement plus lentes pour moi. Cygwin
git status
peut prendre jusqu'à 2 minutes! Ce n'est qu'après l'avoir éteint que j'obtiens les heures indiquées ci-dessus.En plus: je viens de trouver la variable
magit-refresh-verbose
qui actualise le statut. Voici quelques instants pour une actualisation dumagit-status
tampon sur la branche maître Emacs:Windows (natif)
Windows (cygwin)
GNU / Linux (Arch, pire matériel, VPS)
La vitesse plus rapide de Cygwin m'a surpris.
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
la source
exec-path
? ( stackoverflow.com/questions/16884377/… ) Dans mon cas, cela a considérablement amélioré la vitesse.exec-path
.Vous pouvez peut-être essayer de configurer emacs-server afin que vous puissiez avoir une meilleure expérience. En utilisant cette approche ou en exécutant emacs en tant que démon, vous pouvez simplement utiliser emacsclient pour démarrer de nouvelles fenêtres sans charger une autre instance emacs. C'est une belle approche. Je ne l'ai pas testé sous Windows mais voici un lien qui explique comment l'utiliser. J'espère que ça vous aide mec.
Serveur Emacs
la source