Emacs'ın Windows'ta başlatılması neden Linux'tan daha uzun sürüyor?


14

Yapılandırma:

  • Bir sistem
  • İşletim sistemi Windows 10
  • OS Ubuntu 15.10 çift önyükleme olarak
  • GUI'li Emacs 25.0.1

Bir dot-emacsdosya ve .emacs.dklasörümdeki her şey var (paketler de bulunur .emacs.d). Bu dosyaların tümü bir Dropbox klasöründe bulunur.

Windows 10'a ÜZERİNDE: sembolik olarak dot-emacsve .emacs.dDropbox'ta yerlere Windows ev klasöründen.

Linux / Ubuntu 15.10 Açık: Ben de sembolik olarak gelmiş dot-emacsve .emacs.dbenim Ubuntu ev klasöründen (/ home / user / Dropbox'ta yerlere.

Bu nedenle Emacs ile ilgili tüm dosyalar, çeşitli işletim sistemlerinde tek bir Dropbox klasöründe saklanır.

Windows ve Linux aynı diskte çift önyükleme olarak çalışıyor, bu yüzden aynı donanım.

Emacs'ı Windows'ta başlattığımda, başlaması 7.4 saniye sürüyor .

Emacs'ı Linux'ta başlattığımda, başlamak sadece 2.3 saniye sürüyor .

Bu hem grafiksel GUI'ye sahip Emacs hem de 25.0.1 sürümü için geçerlidir. Her iki işletim sistemi de aynı SSD sürücüsünde aynı bilgisayarda bulunur. Yani aynı donanım.

İşletim sisteminde aşağıdakiler aynıdır (Windows 10 ve Ubuntu 15.10):

  • Emacs yazılımı, sürüm 25.0.1
  • Yapılandırma dosyaları (.emacs.d)
  • Bir sabit disk (.emacs.d içindeki tüm dosyalar) ve her iki işletim sistemi de aynı SSD'de bulunur).
  • Donanım

Bir fark:

  • Windows veya Linux için derlenmiş Emacs sırasıyla Windows veya Linux platformunda çalışır. Tek fark bu.

Emacs'ın neden Ubuntu'da Windows'tan fark edilir derecede daha kısa başlatma süresine sahip olduğunu anlamak için uğraşıyorum.


2
Bunun ne olduğunu anlatmayı unuttun. Ayrıca, çıplak Emacs oturumunun başlangıç ​​zamanlarını ile karşılaştırmanız gerekir emacs -Q.
wasamasa

(message emacs-init-time)Başlangıç ​​zamanını ölçmem gerekiyor . Bu bildiğim kadarıyla bir işleve bağlı değil. Öyleyse bunu nasıl ölçebilirim emacs -Q?
ReneFroger

1
M-x emacs-init-time RET
giordano

1
Bu sorunu da görüyorum .. emacs'ım Linux'ta başlaması 5-6 saniye, Windows'ta bir dakika kadar sürüyor. Neyse ki, Windows işteki birincil işletim sistemim değil.
Kaushal Modi

1
Çünkü sanırım GCC. Windows Emacs, pencerelerde harika olmayan GCC'de derlenmiştir, birçok hata vardır. Görsel C ++ ile EMACS derlemek için bir yol varsa, ben performansı görmek istiyorum.
João Paulo Andrade

Yanıtlar:


21

Op-ed: Windows sadece yavaş.

Emacs'ı hem Windows (Cygwin ve yerli) hem de GNU / Linux (Arch) üzerinde düzenli olarak kullanıyorum ve bunu da fark ettim. Cevabın Linux'un birçok alanda Windows'tan daha hızlı, özellikle dosya sistemi işlemleri 1 ve iş parçacığı / çatallama işlemleri 2'de olduğuna inanıyorum .

Performans farkı, git ve özellikle Magit kullanırken en belirgin şekilde örneklendiğini düşünüyorum (çünkü durum arabelleği için oldukça az komut çalıştırdığı için). Git, Windows'ta korkunç derecede yavaş. Aslında o kadar yavaş ki, Windows'ta kodu Dropbox klasörümde sık sık düzenlerim, Linux VPS'imle senkronize edilmesini beklerim ve daha sonra Magit'i sadece Windows'ta kullanmak yerine SSH aracılığıyla kullanırım.

time git statusEmacs ana dalını yapmak Arch benim için ortalama 0.025 saniye sürüyor. Windows'da (yerel), 0.075-0.100 saniye, Windows (cygwin) 0.200 saniye sürer. Bu çok fazla görünmeyebilir, ancak bu, Windows'ta 3-4x daha yavaş olduğu anlamına gelir.

Ayrıca bazı antivirüs yazılımlarının (özellikle McAfee) büyük yavaşlamalara neden olabileceğini de belirtmeliyim. McAfee'nin Erişim Erişimli Tarayıcısı etkinken, işler benim için fark edilir derecede daha yavaş. Cygwin's git status2 dakika kadar sürebilir! Sadece kapattıktan sonra yukarıda belirttiğim zamanları alıyorum.


Bir kenara: magit-refresh-verboseDurumu yenileyen kez değişkeni buldum . magit-statusEmacs ana dalındaki arabelleğin yenilenmesi için birkaç kez :

Windows (yerel)

GNU Emacs 24.5.1 (i686-pc-mingw32) of 2015-04-11 on LEG570
Magit 20151028.1649, Git 2.6.1.windows.1, Emacs 24.5.1
Refreshing buffer `*magit: emacs'...done (9.317s)
Refreshing buffer `*magit: emacs'...done (9.318s)
Refreshing buffer `*magit: emacs'...done (9.357s)

Windows (cygwin)

GNU Emacs 25.0.50.1 (i686-pc-cygwin) of 2015-07-29 on NAND-LT
Magit 20151015.22, Git 2.5.0.234.gefc8a62, Emacs 25.0.50.1
Refreshing buffer `*magit: emacs'...done (4.609s)
Refreshing buffer `*magit: emacs'...done (4.720s)
Refreshing buffer `*magit: emacs'...done (4.626s)

GNU / Linux (Arch, daha kötü donanım, VPS)

GNU Emacs 25.0.50.6 (x86_64-unknown-linux-gnu, GTK+ Version 3.18.2) of 2015-10-26
Magit 20151028.1649, Git 2.6.2, Emacs 25.0.50
Refreshing buffer ‘*magit: emacs’...done (0.517s)
Refreshing buffer ‘*magit: emacs’...done (0.507s)
Refreshing buffer ‘*magit: emacs’...done (0.523s)

Cygwin'in daha yüksek hızı beni şaşırttı.

  1. http://www.slideshare.net/PrincipledTechnologies/comparing-file-system-performance-red-hat-enterprise-linux-6-vs-microsoft-windows-server-2012

  2. /programming/12878980/speed-performance-of-a-qt-program-windows-vs-linux


Git ile ilgili komutların yolunu eklemeye çalıştınız mı exec-path? ( stackoverflow.com/questions/16884377/… ) Benim durumumda hızı önemli ölçüde artırdı.
joon

1
@joon Evet, tüm ilgili yollar zaten benim exec-path.
dadı

Anlıyorum - bunu linux kutusunda da test etmeliyim. Teşekkürler!
joon

@joon Sorun değil. Bunu Windows'da hızlandırmanın bir yolunu bulursanız lütfen bize bildirin. Bu gerçekten bir acı.
dadı

1
Ama soru hala devam ediyor .. Git olmadan bile, Emacs neden Windows'ta fark edilir derecede yavaş?
ReneFroger

0

Belki daha iyi bir deneyim yaşayabilmeniz için emacs-server kurmayı deneyebilirsiniz. Bu yaklaşımı kullanarak veya emacs'ı bir daemon olarak çalıştırırken, başka bir emacs örneği yüklemeyen yeni pencereleri başlatmak için emacsclient'i kullanabilirsiniz. Güzel bir yaklaşım. Windows'ta test etmedim, ancak nasıl kullanılacağını açıklayan bağlantı. Umarım sana yardımcı olur dostum.

Emacs Sunucusu

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.