ソースの表示以前のリビジョンバックリンク全て展開する/折り畳む文書の先頭へ Share via Share via... Twitter LinkedIn Facebook Pinterest Telegram WhatsApp Yammer Reddit Teams最近の変更Send via e-Mail印刷パーマリンク × « FreeBSD 12のApache 2.4.39がunion semun ickふんだららでビルドエラー Emacs 26.1のc-modeのFont Lockが重い問題に立ち向かう » Emacs 26.1のc-modeのシンタックスハイライトが重いでござる(未解決) EmacsでC++を書いてるとバッファが超重くなることがある。キー入力やスクロールがツーテンポくらい遅れる感じ。他のバッファには影響しないので物凄く困ってるわけではないが、地味にストレスでござる。 発生条件がさっぱりわからんのが困りどころ。重くなるファイルでも開いた直後は大丈夫だったりして、編集しているうちに何かの拍子で重くなる。ファイルの大きさ自体はさほど関係ないようだ(起きないやつは行数が多くても起きないし、起きるやつは100行程度のソースでも起きる)。何となく、コメントないしマルチバイト文字成分多めのファイル、C++11なコードで発生しやすいような感じ。 ほぼ間違いないのはc-modeが原因であるということ。他のmodeでは発生しないし…。恐らくFont Lockがらみが原因と思われる (2019-07-09 追記) M-x font-lock-modeでFont Lockの有無を切り替えると明らかに速度が変わるので、Font Lockがらみなのも間違いない。 未だ解決には至ってないが、毎度profileとるのが面倒なのでメモがてら記事にしとく。 Function CPU samples % - redisplay_internal (C function) 736 68% - jit-lock-function 731 68% - jit-lock-fontify-now 731 68% - jit-lock--run-functions 725 67% - run-hook-wrapped 725 67% - #<compiled 0x1b94275> 725 67% - font-lock-fontify-region 725 67% - c-font-lock-fontify-region 722 67% - font-lock-default-fontify-region 658 61% - font-lock-fontify-keywords-region 647 60% - c-font-lock-declarations 320 29% - c-find-decl-spots 313 29% - #<compiled 0x1c22bc1> 234 21% - c-get-fontification-context 125 11% - c-back-over-member-initializers 64 5% + c-just-after-func-arglist-p 18 1% + c-parse-state 16 1% + c-back-over-compound-identifier 14 1% + c-at-toplevel-p 10 0% + c-backward-sws 5 0% + c-looking-at-or-maybe-in-bracelist 47 4% + c-backward-token-2 6 0% + c-back-over-compound-identifier 3 0% + c-forward-decl-or-cast-1 60 5% + c-font-lock-single-decl 15 1% + c-backward-sws 14 1% + c-backward-token-2 4 0% c-syntactic-re-search-forward 2 0% + c-forward-label 1 0% + c-bs-at-toplevel-p 52 4% + c-beginning-of-macro 5 0% + c-forward-sws 3 0% + c-literal-start 1 0% c-font-lock-<>-arglists 77 7% + #<compiled 0x1c2637d> 44 4% + c-font-lock-cut-off-declarators 41 3% + c-font-lock-enclosing-decls 34 3% + c-font-lock-enum-body 24 2% #<compiled 0x1c26351> 19 1% + c-font-lock-complex-decl-prepare 11 1% + c-font-lock-enum-tail 8 0% #<compiled 0x1c272e7> 8 0% + c-font-lock-invalid-single-quotes 7 0% #<compiled 0x1c272af> 6 0% #<compiled 0x1c2631b> 6 0% #<compiled 0x1c27285> 4 0% #<compiled 0x1c2633d> 4 0% #<compiled 0x1c263a3> 4 0% #<compiled 0x1c2630b> 3 0% + c-font-lock-raw-strings 3 0% whitespace-trailing-regexp 1 0% + font-lock-fontify-syntactically-region 7 0% + font-lock-unfontify-region 1 0% + c-before-context-fl-expand-region 64 5% + file-remote-p 4 0% + eval 1 0% - ... 232 21% Automatic GC 232 21% + command-execute 103 9% 御覧の通り、c-modeのFont Lockが原因なのは間違いないんだよなー。解決方法分からんけど。 以前はそれほど気にならなかったし設定も大して変えてないので、単にマシンがしょぼいだけって線も捨てきれない。一応マシンスペックも書いておく。 CPU Core i5-5200U (2.2GHz/2C4T) RAM DDR3-1600 8GBx1 GPU HD Graphics 5500 HDD MQ01ABF050 前はUnreal Engine 4での開発に耐えられるようなデスクトップマシンだったのよねー。 Comments Name E-Mail Website 人間の証明として、ボックス内の全ての文字を入力してください。 この項目は空のままにして下さい:Preview Comment blog/2019/2019-06-27.txt 最終更新: 2019-07-09 11:55by Decomo