minad / corfu

:desert_island: corfu.el - COmpletion in Region FUnction
GNU General Public License v3.0
1.15k stars 43 forks source link

Using corfu with lsp mode has very bad performance #293

Closed aadi58002 closed 1 year ago

aadi58002 commented 1 year ago

I am trying to replace company mode with corfu in lsp mode. But the sometime completions take second to come as well as having the entire session hang during that time. After running the profiler

       11985  66% + corfu--auto-post-command
        3158  17% + #<compiled 0xa33c2e85339e551>
        1422   7% + ...
         655   3% + command-execute
         529   2% + redisplay_internal (C function)
         160   0% + corfu--post-command
          59   0% + lsp-ui-doc--make-request
          46   0% + timer-event-handler
           9   0% + evil--jump-hook
           6   0% + evil-repeat-post-hook
           3   0% + flycheck-perform-deferred-syntax-check
           3   0% + evil-visual-post-command
           1   0%   evil--jump-handle-buffer-crossing
  2,613,246,673  74% + corfu--auto-post-command
    867,988,726  24% + #<compiled 0xa33c2e85339e551>
     25,666,433   0% + command-execute
     15,370,296   0% + redisplay_internal (C function)
      1,888,250   0% + corfu--post-command
      1,134,152   0% + timer-event-handler
        361,588   0% + lsp-ui-doc--make-request
        144,720   0%   web-mode-on-post-command
         72,612   0% + lsp-signature
         50,609   0% + flycheck-perform-deferred-syntax-check
         45,744   0% + evil-visual-post-command
         39,232   0% + lsp-ui-sideline
         24,856   0% + lsp--post-command
         10,800   0% + flycheck-maybe-display-error-at-point-soon
          5,269   0% + help-command-error-confusable-suggestions
          5,152   0% + #<compiled -0x24230303346c406>
          4,224   0% + eldoc-schedule-timer
          2,112   0% + #<compiled 0x5780d192d05b7b0>
          1,056   0% + undo-auto--add-boundary
              0   0%   ...

The above were the result

minad commented 1 year ago

Duplicate #188