이맥스 포인트 (커서) 이동 지연


12

실행하는 경우 previous-line, C-p또는 <up>커서가 어떤 문제 나 시차없이 라인을 이동합니다. 실행하는 경우 next-line, C-n또는 <down>커서가 제대로 선 아래로 이동하지만, 상당한 지연과 함께. 아래쪽 키를 누르면 포인트가 움직이는 것을 볼 수 없으며 아래 어딘가에 나타납니다. 이맥스 프로파일 러를 실행했는데 범인은 cl-position입니다. 그것이 작동하는 것은 previous-line문자 그대로 커서를 움직이고 next-line많은 기능 을 실행한다는 것입니다.

프로파일 러 출력

문제는 무엇이며 어떻게 해결할 수 있습니까?


사용하고 visual-line-mode있습니까? 아주 긴 줄이 있습니까?
Drew

나는 사용 visual-line-mode하지 않으며 긴 줄이 없습니다.
데미안 크 르자 노프 스키

답변:


23

나는 장난 꾸러기를 조금 좁히고 인터넷 검색을 통해 내 질문에 대한 답을 찾았습니다. 나는 지연을 10 배 줄였다 !!!! 내 말은 .... next-line커서가 아래로 움직이기 위해 얼마나 많은 컴퓨팅 파워 가 사용 되었는가는 미쳤 습니까?!?!

수정 :

이 코드를 init.el에 넣으십시오. (setq auto-window-vscroll nil)

증거:

래그가 크게 감소

이제 지연을 줄이지 next-line않습니다 line-move-partial. 내가 설정을 기억하지 않습니다 auto-window-vscrollt. 내 .el파일 의 어느 곳에도 없었 t습니다. 시작 하기 위해 어떻게 설정되었는지 잘 모르겠습니다 . 따라서 커서 이동에 성능 문제가있는 경우 위 수정은 지연을 약 50 % -80 % CPU 시간에서 5 % CPU 시간으로 줄입니다 !!!

영향을 받는지 빠르게 확인하려면 다음을 실행하십시오 C-h v auto-window-vscroll. 설정되어 t있으면 주요 성능 문제가있을 수 있습니다. 커서 움직임으로 인해 실제로 지연이 발생하는지 Emacs 프로파일 러로 확인하십시오.

행운을 빕니다 동료 Emacs 애인 !!!

수정 소스


이에 대한 Emacs 버그 (또는 개선 요청)를 제출하십시오 M-x report-emacs-bug.
Drew

2
나는 이것이 많은 사람들에게 문제가되는 것을 볼 수 있듯이 그렇게 할 것입니다.
데미안 크 르자 노프 스키

1
고마워요, Damian, 성능이 향상되었지만 여전히 약간 응답이 없습니다.
Neeraj Verma

3

문제가 무엇인지 확실하지 않지만 프로파일 러 보고서는 posn-at-point가 예상보다 더 많은 디스플레이를 수행하여 모드 라인의 재 계산을 유발하고 전력선은 메모하는 데 더 많은 노력을 기울여야한다고 나타냅니다 모델에 대한 계산.

IOW, 나는 당신에게 제안 M-x report-emacs-bug하고 당신은 또한 전력선 관리자에게 버그를보고 할 수 있습니다.


0

전력선을 사용하고있는 것 같습니다. 특히, 모델 프로젝트에 발사체 프로젝트 이름을 표시합니다. 최근 발사체 패키지가 일부 개선 된 부분이 개선되었습니다. 최신 상태인지 확인하십시오.

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

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

modeline이 호출하는 함수를 메모 할 수도 있습니다. 나는 이것을 매우 빨리 만들기 위해 모델에서 많은 일을했습니다.


문제는 이미 해결되었습니다. 발사체 또는 전력선은 문제가되지 않았습니다
Damian Chrzanowski

정렬해서 다행입니다. 당신의 프로필은 발사체에서 오는 속도 저하를 지적했습니다. auto-window-vscroll을 nil로 설정하면 emacs가 불필요한 모드 라인 계산을 건너 뛸 수 있습니다. 여하튼, 당신이 그것을 분류하게되어 기쁘다!
Aaron Jensen

좋은 지적입니다. 실제로 어떤 패키지가 문제인지 확인할 시간이 없었습니다. 그래도 제안에 감사드립니다!
Damian Chrzanowski 17

0

나는 doom-modeline또한 지연에 기여하고 있음을 알았습니다 . 실제로, 그것은 의사의 문서에서 말합니다 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'.

설정 후 (setq doom-modeline-enable-word-count nil)커서 움직임이 눈에 띄게 빨라졌습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.