Emacs noktası (imleç) hareket gecikmesi


12

Çalıştırırken previous-line, C-pya <up>imleç herhangi bir sorun ya da gecikme olmaksızın hattı atlar. Çalıştırırken next-line, C-nya <down>imleç düzgün bir çizgi aşağı atlar, ama önemli bir gecikmeyle. Aşağı tuşunu basılı tuttuğumda noktanın hareket ettiğini bile göremiyorum, sadece aşağıda bir yerde görünüyor. Emacs profilini oluşturdum ve sanki suçlu var cl-position. Ne olduğu ortaya eserler olmasıdır previous-lineanlamıyla sadece imleci hareket next-linefonksiyonların çalışır bir sürü.

Profiler çıktısı

Sorun nedir ve nasıl düzeltilir?


Kullanıyor musunuz visual-line-mode? Çok uzun hatlarınız var mı?
Drew

Kullanmıyorum visual-line-modeve uzun çizgim yok.
Damian Chrzanowski

Yanıtlar:


23

Yaramaz parçayı daraltarak ve googling yaparak soruma bir cevap buldum. Gecikme 10 ZAMAN azaltmayı başardık !!!! Demek istediğim .... next-lineBir imleci aşağı hareket ettirmek için ne kadar bilgi işlem gücünün kullanıldığına deli oluyor .

Çözüm:

Bu kodu init.el dosyasına koyun: (setq auto-window-vscroll nil)

Kanıt:

Gecikme önemli ölçüde azaldı

Şimdi next-linetetiklemez line-move-partialbu nedenle gecikmeyi azaltır. Ben kurma hatırlamıyorum auto-window-vscrolliçin t. .elDosyalarımın hiçbir yerinde değildi , nasıl tbaşlayacağından emin değilim . Bu nedenle, herkesin imleç hareketi ile ilgili bir performans sorunu varsa, yukarıdaki düzeltme gecikmeyi yaklaşık% 50 ila% 80 işlemci süresinden% 5 işlemci süresine indirecektir!

Etkilenip etkilenmediğinizi hızlı bir şekilde kontrol etmek için çalıştırın C-h v auto-window-vscroll. Eğer ayarlanırsa tönemli performans sorunları yaşıyor olabilirsiniz. İmleç hareketinin gerçekten gecikmeye neden olup olmadığını Emacs profil oluşturucusuyla doğrulayın.

İyi şanslar dost Emacs severler !!!

Düzeltme kaynağı


Bunun için bir Emacs hata (veya geliştirme isteğiniz) dosyalama düşünün: M-x report-emacs-bug.
Drew

2
Göreceğim gibi, bunun birçok insan için bir sorun olduğunu görüyorum.
Damian Chrzanowski

1
Teşekkürler Damian, performansı artırır ama yine de biraz tepkisizlik hissediyorum
Neeraj Verma

3

Sorunun ne olduğundan tam olarak emin değilim, ancak profil oluşturma raporunuz, posn-at-point'in beklenenden daha fazla yeniden görüntüleme gerçekleştirdiğini gösteriyor, bu da mod hattının yeniden hesaplanmasına neden oluyor ve bu güç hattı hatırlamak için daha fazla çaba sarf etmeli modelin hesaplanması.

IOW, size öneririm M-x report-emacs-bugve ayrıca güç hattı bakım görevlilerine bir hata bildirebilirsiniz.


0

Elektrik hattı kullanıyormuşsunuz gibi görünüyor. Özellikle, mermi projenizde mermi proje adını görüntülüyorsunuz. Son zamanlarda mermi paketinde bazılarını hafifleten bazı iyileştirmeler yapıldı. Güncel olduğunuzdan emin olun.

https://github.com/bbatsov/projectile/issues/1212

https://github.com/bbatsov/projectile/pull/1213

Modelinin çağırdığı işlevleri not etmek de mümkündür. Bunu çok hızlı yapmak için modellememde çok şey yaptım.


Sorun zaten çözüldü, Mermi veya Güç hattı sorun değildi
Damian Chrzanowski

Sıralamanıza sevindim. Profiliniz mermiden kaynaklanan yavaşlamaya işaret ediyordu. Otomatik pencere-vscroll değerini nil olarak ayarlamak, emac'lerin gereksiz mod satırı hesaplamalarını atlamasına neden olabilir. Herhangi bir şekilde, sevindim sıralanmış var!
Aaron Jensen

Bu iyi bir nokta. Gerçekten hangi paketin sorun olduğunu kontrol etmek için zamanım yoktu. Yine de öneriler için teşekkürler!
Damian Chrzanowski

0

Benim doom-modelinede gecikmeye katkıda bulunduğunu fark ettim . Aslında, şu dokümanda söylenir doom-modeline:

 ;; If it brings the sluggish issue, disable `doom-modeline-enable-word-count' or
 ;; remove the modes from `doom-modeline-continuous-word-count-modes'.

Ayarladıktan sonra (setq doom-modeline-enable-word-count nil)imleç hareketlerinde fark edilir bir hız kazandım.

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.