web-mode中行数太多会导致emacs卡顿

天呐,以前Windows没碰到过这问题,mac用了几天就碰上了。profile了一下是company-css这个后端特别卡,我现在

(with-eval-after-load 'web-mode
                            (setcar company-backends-web-mode '(company-web-html)))

把第一组从'(company-web-html company-css)改成'(company-web-html),有所改善,但是仍然有点卡。profile如下,这回看不懂了。

- ...                                                             927  62%
 - cl-delete-if                                                   925  62%
  - apply                                                         925  62%
   - cl-delete                                                    925  62%
    + #<compiled 0x4420d9e3>                                      925  62%
 + ivy--resize-minibuffer-to-fit                                    1   0%
 + golden-ratio--resize-window                                      1   0%
   Automatic GC                                                     0   0%
+ command-execute                                                 323  21%
+ timer-event-handler                                             120   8%
+ linum-update-current                                             64   4%
+ company-post-command                                             26   1%
+ redisplay_internal (C function)                                  18   1%
+ evil-repeat-post-hook                                             1   0%

(with-eval-after-load 'web-mode
                            (setq company-backends-web-mode (cdr company-backends-web-mode)))

company-web-html也去掉了,现在似乎不卡了。

另外有个小问题,这样改下来company-backends是去掉了前述两个后端后的结果,但是company-backends-web-mode变成了nil,有点奇怪,但是补全仍然能进行。这是因为company-backends-web-mode是在打开一个文件时设定当前buffer的backends时套用的,已经打开的不会受这个变量影响。