![jit-lock 기능 끊기 emacs](https://rvso.com/image/1711472/jit-lock%20%EA%B8%B0%EB%8A%A5%20%EB%81%8A%EA%B8%B0%20emacs.png)
jit-lock 기능은 CPU를 너무 많이 소모하고 Emacs를 자주 끊습니다. 누구든지 같은 문제를 겪었습니까? 이 문제를 해결하는 방법은 무엇입니까?
OS는 Archlinux x64, CPU intel i7 4790, 16GB RAM입니다. 시스템 서비스를 제외하고 emacs만 실행 중입니다.
감사해요!
프로파일러 보고서는 다음을 제공합니다.
- redisplay_internal (C function) 2728 90%
- jit-lock-function 2724 89%
- jit-lock-fontify-now 2724 89%
- jit-lock--run-functions 2724 89%
- run-hook-wrapped 2724 89%
- #<compiled 0x40f2001> 2724 89%
- font-lock-fontify-region 2724 89%
- c-font-lock-fontify-region 2724 89%
- font-lock-default-fontify-region 2716 89%
- font-lock-fontify-keywords-region 2712 89%
- c-font-lock-declarations 1932 63%
- c-find-decl-spots 1912 63%
- #<compiled 0x22af545> 1148 37%
- c-get-fontification-context 732 24%
- c-looking-at-or-maybe-in-bracelist 504 16%
+ c-backward-token-2 472 15%
- c-back-over-member-initializers 108 3%
+ c-back-over-compound-identifier 56 1%
+ c-parse-state 32 1%
c-backward-sws 8 0%
+ c-back-over-compound-identifier 68 2%
+ c-backward-token-2 16 0%
c-backward-sws 4 0%
+ c-forward-decl-or-cast-1 240 7%
+ c-forward-label 60 1%
+ c-backward-token-2 16 0%
+ c-backward-sws 12 0%
+ c-font-lock-single-decl 8 0%
c-syntactic-re-search-forward 4 0%
+ c-bs-at-toplevel-p 672 22%
+ c-beginning-of-macro 28 0%
c-forward-sws 8 0%
c-backward-token-2 4 0%
c-font-lock-<>-arglists 304 10%
+ #<compiled 0x22b6359> 92 3%
#<compiled 0x22b6381> 68 2%
#<compiled 0x22b5fbd> 32 1%
#<compiled 0x22b62b9> 32 1%
#<compiled 0x22b625d> 28 0%
#<compiled 0x22b62fd> 28 0%
#<compiled 0x22b631d> 28 0%
#<compiled 0x22b63d5> 8 0%
+ c-font-lock-enclosing-decls 4 0%
c-font-lock-enum-body 4 0%
#<compiled 0x22b6669> 4 0%
font-lock-fontify-syntactically-region 4 0%
+ c-before-context-fl-expand-region 8 0%
답변1
손가락질이 약간 잘못되었습니다. 89%의 시간이 에 소비되었지만 jit-lock-function
이 모든 시간도 에 소비되었습니다 c-font-lock-fontify-region
( 에서 간접적으로 호출됨 jit-lock-function
).
따라서 문제는 jit-lock이 아닌 c-font-lock에 있습니다.
를 통해 이를 버그로 신고해 주세요 M-x report-emacs-bug
. 아마도 그것이 나타나는 버퍼의 내용에 대한 세부 정보를 제공하고 싶을 것입니다(C++ 파일이라고 가정하겠습니다).
이것이 26.3보다 오래된 Emacs를 사용하는 경우 버그를 보고하기 전에 Emacs-26.3으로 시도해 볼 가치가 있을 것입니다. C++ 모드의 글꼴 잠금 성능이 수년에 걸쳐 정기적으로 개선되었기 때문입니다.