lsp-java icon indicating copy to clipboard operation
lsp-java copied to clipboard

The completion is very slow.

Open huangfeiyu opened this issue 2 years ago • 6 comments

Hi, the code completion is very slow with my emacs 27.1 and jdtls 1.12. especially when I have more java file opened, it get extremely slow, I see the jdtls is quite busy during code completion, the cpu usage is quite high. Except completion, everything else like go-to-definition, works pretty fine. I've already followed the instructions from https://emacs-lsp.github.io/lsp-mode/page/performance/. Can you please tell me what I can do else to improve the completion performance? Thanks a lot!

huangfeiyu avatar Jul 22 '22 02:07 huangfeiyu

I've already followed the instructions from https://emacs-lsp.github.io/lsp-mode/page/performance/.

In that same page, there is a description of how to report perf problems...

yyoncho avatar Jul 22 '22 05:07 yyoncho

Thanks @yyoncho . Here's a report.

  • command-execute 3818 30%
  • call-interactively 3818 30%
  • funcall-interactively 3752 30%
  • helm-imenu 2024 16% - helm 2007 16%
    • apply 2007 16%
    • helm 2007 16%
    • apply 2007 16%
    • helm-internal 2007 16% - helm-read-from-minibuffer 1961 15%
      • read-from-minibuffer 1885 15%
      • timer-event-handler 1324 10%
      • apply 1322 10%
      • #<compiled 0x157c966eadb9> 1304 10% - helm-check-minibuffer-input 1304 10%
        • helm-check-new-input 1304 10%
        • helm-update 1302 10%
        • helm--collect-matches 1287 10%
        • helm-compute-matches 1287 10% - helm-match-from-candidates 929 7% helm-fuzzy-match 375 3%
          • helm-mm-match 91 0%
          • helm-mm-3-match 69 0% helm-mm-regexp-p 9 0%
          • helm-buffers-match-function 1 0%
          • helm-buffers--match-from-pat 1 0% helm-mm-split-pattern 1 0%
          • helm-set-case-fold-search 1 0% helm-basename 1 0% - helm-process-filtered-candidate-transformer 287 2%
          • helm-apply-functions-from-source 287 2%
          • apply 286 2%
          • helm-fuzzy-highlight-matches 237 1%
          • helm-flx-fuzzy-highlight-match 235 1% - helm-flx-fuzzy-highligher 207 1%
            • #<compiled 0x157c98658675> 114 0%
            • kill-buffer 71 0% run-hooks 54 0%
            • replace-buffer-in-windows 11 0%
            • unrecord-window-buffer 7 0% assq-delete-all 4 0% magit-preserve-section-visibility-cache 1 0% uniquify-kill-buffer-function 1 0%
            • flx-score 65 0%
            • flx-find-best-match 35 0%
            • flx-find-best-match 28 0%
            • flx-find-best-match 17 0% - flx-find-best-match 9 0%
              • flx-find-best-match 8 0%
              • flx-find-best-match 5 0%
              • flx-find-best-match 4 0%
              • flx-find-best-match 3 0% - flx-find-best-match 1 0% flx-find-best-match 1 0%
            • flx-process-cache 27 0%
            • flx-get-hash-for-string 19 0% flx-get-heatmap-file 18 0%
            • generate-new-buffer 13 0%
            • get-buffer-create 6 0%
            • run-hooks 6 0% flycheck-handle-buffer-switch 1 0% - helm-fuzzy-default-highlight-match 1 0%
            • generate-new-buffer 1 0%
            • get-buffer-create 1 0% run-hooks 1 0%
          • #<lambda 0xfb5cb3308b129f> 20 0%
          • setq 20 0% - ignore-errors 20 0%
            • condition-case 20 0%
            • progn 20 0%
            • cdr 20 0%
            • projectile-project-buffer-names 20 0% - projectile-project-buffers 20 0%
              • cl-remove-if-not 19 0%
              • apply 19 0%
              • cl-remove 19 0%
              • apply 17 0% - cl-delete 17 0%
                • #<compiled 0x157c9c9aff25> 17 0%
                • projectile-project-buffer-p 15 0%
                • file-truename 15 0%
                • file-truename 14 0% - file-truename 11 0%
                  • file-truename 10 0%
                  • file-truename 8 0%
                  • file-truename 5 0%
                  • file-truename 5 0% - file-truename 4 0%
                    • file-truename 3 0%
                    • file-truename 1 0%
                    • file-truename 1 0% file-truename 1 0%
              • #<compiled 0x157c9c9aff25> 2 0% - projectile-project-buffer-p 2 0%
                • file-truename 1 0%
                • file-truename 1 0%
                • file-truename 1 0%
                • file-truename 1 0% - file-truename 1 0%
                  • file-truename 1 0% file-truename 1 0% file-remote-p 1 0%
              • projectile-acquire-root 1 0%
              • projectile-project-root 1 0%
              • cl-some 1 0%
              • #<compiled 0x157c9c9aff0d> 1 0% - file-truename 1 0%
                • file-truename 1 0% file-truename 1 0%
          • helm-highlight-buffers 12 0%
          • helm-buffer--details 10 0% abbreviate-file-name 4 0% tramp-archive-file-name-p 1 0%
          • helm-flx-fuzzy-highlight-match 1 0% - helm-flx-fuzzy-highligher 1 0% generate-new-buffer 1 0%
          • helm-M-x-transformer-no-sort 8 0% helm-M-x-transformer-1 7 0%
          • #<compiled 0x157c9678e8f5> 4 0%
          • projectile-project-root 4 0% - cl-some 3 0%
            • #<compiled 0x157c99702be1> 3 0%
            • file-truename 3 0%
            • file-truename 3 0%
            • file-truename 3 0% - file-truename 3 0%
              • file-truename 2 0%
              • file-truename 2 0% file-truename 2 0% tramp-archive-file-name-p 1 0%
          • helm-fuzzy-matching-default-sort-fn 2 0%
          • helm-fuzzy-matching-default-sort-fn-1 2 0% - sort 2 0% #<compiled 0x157c98464139> 2 0%
          • #<lambda 0x1ce5b844138907e0> 1 0%
          • if 1 0% - cl-loop 1 0% #<compiled 0x157c95f66649> 1 0%
          • #<compiled 0x157c98ff3901> 1 0%
          • helm-fuzzy-matching-default-sort-fn-1 1 0% - sort 1 0% #<compiled 0x157c99243681> 1 0% - helm-get-cached-candidates 61 0%
          • helm-get-candidates 61 0%
          • helm-interpret-value 61 0%
          • helm-apply-functions-from-source 61 0%
          • apply 61 0% - helm-candidates-in-buffer 60 0%
            • helm-candidates-in-buffer-1 60 0%
            • helm-search-from-candidate-buffer 60 0%
            • helm--search-from-candidate-buffer-1 60 0%
            • #<compiled 0x157c982db361> 60 0% helm-fuzzy-search 53 0% - helm-mm-search 3 0%
              • helm-mm-3-search 3 0% helm-mm-3-search-base 3 0% helm-candidates-in-buffer-search-default-fn 2 0% - helm-match-functions 2 0% assoc-default 1 0%
        • helm-render-source 11 0% helm-insert-match 11 0%
        • #<compiled 0x157c968f1941> 1 0% helm-display-mode-line 1 0% helm--update-move-first-line 1 0% helm-action-window 1 0% #<compiled 0x1febfaff3a21> 10 0%
      • auto-revert-buffers 6 0% - apply 6 0%
        • auto-revert-buffers--buffer-list-filter 6 0%
        • #<compiled 0x157c965e45a5> 4 0%
        • auto-revert-handler 2 0% file-remote-p 2 0% mapcar 2 0% posframe-hidehandler-daemon-function 1 0%
      • show-paren-function 1 0% show-paren--default 1 0% cancel-timer-internal 1 0%
      • redisplay_internal (C function) 16 0%
      • eval 15 0%
      • with-helm-buffer 10 0% - with-current-buffer 10 0%
        • save-current-buffer 10 0%
        • helm-show-candidate-number 10 0%
        • helm-get-candidate-number 6 0% helm-pos-header-line-p 4 0% helm-get-previous-header-pos 1 0%
        • helm-empty-source-p 2 0%
        • helm-end-of-source-p 2 0% helm-end-of-source-1 1 0%
      • tab-line-format 3 0% - tab-line-format-template 3 0% tab-line-auto-hscroll 2 0% mapcar 1 0% make-string 1 0%
      • #<compiled 0x1febfb07f87b> 1 0% apply 1 0%
      • command-execute 8 0%
      • call-interactively 8 0%
      • funcall-interactively 8 0% - helm-next-line 5 0%
        • helm--next-or-previous-line 5 0%
        • helm-move-selection-common 5 0%
        • helm-window 2 0%
        • helm-buffer-get 1 0% helm-action-window 1 0%
        • helm-buffer-get 1 0% helm-action-window 1 0% helm-display-mode-line 1 0% helm-move--next-line-fn 1 0% - helm-previous-line 2 0%
        • helm--next-or-previous-line 2 0%
        • helm-move-selection-common 2 0% helm-display-mode-line 1 0% delete-backward-char 1 0%
      • minibuffer-inactive-mode 2 0%
      • run-mode-hooks 1 0%
      • run-hooks 1 0% - global-font-lock-mode-enable-in-buffers 1 0%
        • turn-on-font-lock-if-desired 1 0%
        • turn-on-font-lock 1 0% font-lock-mode 1 0%
      • kill-all-local-variables 1 0% global-tab-line-mode-cmhh 1 0%
      • helm--update-header-line 1 0%
      • helm-buffer-get 1 0% helm-action-window 1 0%
      • #<compiled 0x157c96b808ed> 1 0% electric-pair-syntax-info 1 0% clear-minibuffer-message 1 0%
      • helm-force-update 10 0%
      • helm-update 10 0%
      • helm--collect-matches 9 0%
      • helm-compute-matches 9 0% - helm-process-filtered-candidate-transformer 8 0%
        • helm-apply-functions-from-source 8 0%
        • apply 8 0%
        • helm-fuzzy-highlight-matches 8 0%
        • helm-flx-fuzzy-highlight-match 8 0% - helm-flx-fuzzy-highligher 7 0%
          • #<compiled 0x157c96d7afa5> 4 0%
          • kill-buffer 3 0% run-hooks 3 0%
          • generate-new-buffer 3 0%
          • get-buffer-create 3 0% run-hooks 3 0% - helm-get-cached-candidates 1 0%
        • helm-get-candidates 1 0%
        • helm-transform-candidates 1 0%
        • helm-process-candidate-transformer 1 0%
        • helm-apply-functions-from-source 1 0% apply 1 0%
      • helm-render-source 1 0% helm-insert-match 1 0%
      • helm-imenu--execute-action-at-once-p 10 0%
      • helm-force-update 10 0%
      • helm-update 10 0%
      • helm--collect-matches 9 0% - helm-compute-matches 9 0%
        • helm-process-filtered-candidate-transformer 9 0%
        • helm-apply-functions-from-source 9 0%
        • apply 9 0%
        • helm-fuzzy-highlight-matches 9 0% - helm-flx-fuzzy-highlight-match 9 0%
          • helm-flx-fuzzy-highligher 7 0%
          • #<compiled 0x157c98bf562d> 4 0%
          • kill-buffer 3 0% run-hooks 3 0%
          • generate-new-buffer 2 0%
          • get-buffer-create 1 0% run-hooks 1 0% helm-update-source-p 1 0%
      • helm-update 5 0%
      • helm--collect-matches 3 0%
      • helm-compute-matches 3 0%
      • helm-get-cached-candidates 2 0% - helm-get-candidates 2 0%
        • helm-transform-candidates 2 0%
        • helm-process-candidate-transformer 2 0%
        • helm-apply-functions-from-source 2 0%
        • apply 2 0% helm-imenu-transformer 1 0%
      • helm-match-from-candidates 1 0% - helm-mm-match 1 0% helm-mm-3-match 1 0%
      • #<compiled 0x157c9ae17ba1> 2 0% helm-display-mode-line 2 0%
      • helm-display-buffer 3 0%
      • helm-default-display-buffer 3 0%
      • display-buffer 3 0%
      • display-buffer--maybe-pop-up-frame-or-window 3 0% - display-buffer--maybe-pop-up-window 3 0%
        • display-buffer-pop-up-window 3 0% window--maybe-raise-frame 3 0% - helm-execute-selection-action 38 0%
      • helm-execute-selection-action-1 37 0%
      • helm-imenu-action 37 0%
      • helm-highlight-current-line 37 0%
      • recenter 34 0% - jit-lock-function 34 0%
        • jit-lock-fontify-now 34 0%
        • jit-lock--run-functions 34 0%
        • run-hook-wrapped 34 0%
        • #<compiled 0x157c97f10565> 34 0% - font-lock-fontify-region 34 0%
          • c-font-lock-fontify-region 34 0%
          • font-lock-default-fontify-region 34 0%
          • font-lock-fontify-keywords-region 29 0%
          • c-font-lock-declarations 22 0% - c-find-decl-spots 22 0%
            • c-bs-at-toplevel-p 12 0%
            • c-brace-stack-at 12 0%
            • c-update-brace-stack 10 0% c-syntactic-re-search-forward 8 0% c-beginning-of-current-token 1 0%
            • #<compiled 0x157c965d9a65> 7 0%
            • c-forward-decl-or-cast-1 4 0%
            • c-forward-type 2 0% c-forward-name 1 0%
            • c-font-lock-single-decl 1 0% c-font-lock-declarators 1 0%
            • c-backward-sws 3 0%
            • apply 3 0%
            • #<compiled 0x157c96aaa11d> 3 0%
            • apply 3 0% #<compiled 0x157c965f1161> 2 0%
          • #<compiled 0x157c965caf39> 2 0% - c-beginning-of-decl-1 2 0% c-beginning-of-statement-1 2 0% c-font-lock-cut-off-declarators 1 0%
          • #<compiled 0x157c965cbe55> 1 0% c-font-lock-doc-comments 1 0%
          • c-font-lock-complex-decl-prepare 1 0% - c-parse-state 1 0%
            • c-parse-state-1 1 0% c-append-to-state-cache 1 0%
          • c-font-lock-enclosing-decls 1 0% - c-determine-limit 1 0%
            • c-semi-pp-to-literal 1 0% c-semi-get-near-cache-entry 1 0%
          • font-lock-fontify-syntactically-region 4 0% syntax-ppss 4 0%
      • helm-log-run-hook 1 0%
      • run-hooks 1 0% helm-ff-before-action-hook-fn 1 0% - #<compiled 0x157c966e8485> 8 0%
      • helm-cleanup 7 0%
      • helm-frame-or-window-configuration 7 0% select-frame-set-input-focus 7 0% - which-function 17 0%
    • add-log-current-defun 9 0%
    • #<compiled 0x157c96622401> 9 0%
    • c-defun-name-and-limits 9 0%
    • c-widen-to-enclosing-decl-scope 8 0% forward-list 7 0% c-most-enclosing-decl-block 1 0%
    • c-defun-name-1 1 0% - c-beginning-of-decl-1 1 0% c-beginning-of-statement-1 1 0%
    • imenu--make-index-alist 8 0%
    • lsp--imenu-create-index 8 0%
    • lsp--get-document-symbols 5 0%
    • lsp-request 5 0% - accept-process-output 4 0% #<compiled 0x157c971fb7a1> 4 0% - lsp-request-async 1 0%
      • lsp--send-request-async 1 0%
      • seq-do 1 0%
      • mapc 1 0%
      • #<compiled 0x157c98276b39> 1 0% lsp--make-message 1 0%
    • lsp-imenu-create-uncategorized-index 3 0%
    • lsp--imenu-create-hierarchical-index 2 0% - seq-map 2 0%
      • apply 2 0%
      • #<compiled 0x157c95f48261> 2 0%
      • mapcar 2 0%
      • lsp--symbol-to-hierarchical-imenu-elem 2 0% - lsp--imenu-create-hierarchical-index 2 0%
        • seq-map 2 0%
        • apply 2 0%
        • #<compiled 0x157c95f48261> 1 0%
        • mapcar 1 0% - lsp--symbol-to-hierarchical-imenu-elem 1 0%
          • lsp--imenu-filter-symbols 1 0% seq-remove 1 0%
  • helm-projectile 494 3% - helm 490 3%
    • apply 490 3%
    • helm 490 3%
    • apply 490 3%
    • helm-internal 490 3% - helm-read-from-minibuffer 371 2%
      • helm-update 230 1%
      • helm--collect-matches 229 1%
      • helm-compute-matches 229 1%
      • helm-get-cached-candidates 226 1% - helm-get-candidates 226 1%
        • helm-interpret-value 226 1%
        • helm-apply-functions-from-source 226 1%
        • apply 226 1%
        • #<compiled 0x157c9678e8cd> 216 1% - projectile-current-project-files 29 0%
          • projectile-project-files 29 0%
          • projectile-dir-files-alien 29 0%
          • projectile-files-via-ext-command 27 0% split-string 12 0%
          • shell-command 8 0% - apply 8 0%
            • shell-command--shell-command-with-editor-mode 8 0%
            • #<compiled 0x1febfafcc907> 8 0% call-process-shell-command 8 0% string-trim 6 0% - projectile-project-p 1 0%
          • projectile-project-root 1 0%
          • cl-some 1 0%
          • #<compiled 0x157c9bbc7ea9> 1 0%
          • file-truename 1 0% - file-truename 1 0%
            • file-truename 1 0%
            • file-truename 1 0% file-truename 1 0%
        • helm-imenu-candidates 10 0% - imenu--make-index-alist 10 0%
          • lsp--imenu-create-index 10 0%
          • lsp-imenu-create-uncategorized-index 10 0%
          • lsp--imenu-create-hierarchical-index 8 0%
          • seq-map 8 0% - apply 8 0%
            • #<compiled 0x157c95f48261> 8 0%
            • mapcar 8 0%
            • lsp--symbol-to-hierarchical-imenu-elem 8 0%
            • lsp--imenu-create-hierarchical-index 8 0% - seq-sort 8 0%
              • apply 8 0%
              • #<compiled 0x157c95f48321> 8 0%
              • sort 8 0%
              • lsp--imenu-symbol-lessp 7 0% - mapcar 4 0% #<compiled 0x157c98409209> 3 0% - seq-find 3 0% seq-do 3 0%
          • lsp--collect-lines-and-cols 2 0%
          • -sort 1 0% sort 1 0%
      • helm-process-filtered-candidate-transformer 3 0% - helm-apply-functions-from-source 3 0%
        • apply 3 0%
        • helm-highlight-buffers 3 0%
        • helm-buffer--details 2 0% helm-buffer--show-details 1 0% abbreviate-file-name 1 0%
      • helm--update-move-first-line 1 0%
      • helm-move-selection-common 1 0% helm-display-mode-line 1 0%
      • read-from-minibuffer 133 1%
      • timer-event-handler 63 0%
      • apply 63 0%
      • #<compiled 0x157c966eadb9> 62 0% - helm-check-minibuffer-input 61 0%
        • helm-check-new-input 61 0%
        • helm-update 61 0%
        • helm--collect-matches 50 0% helm-compute-matches 50 0%
        • #<compiled 0x157c9a098365> 8 0%
        • helm-log-run-hook 6 0% - run-hooks 6 0%
          • helm-comp-read--move-to-first-real-candidate 4 0%
          • helm-next-line 4 0%
          • helm--next-or-previous-line 4 0%
          • helm-move-selection-common 4 0% helm-display-mode-line 4 0%
          • helm-projectile--move-to-real 2 0%
          • helm-next-line 2 0%
          • helm--next-or-previous-line 2 0%
          • helm-move-selection-common 2 0% helm-display-mode-line 2 0% helm-display-mode-line 2 0%
        • helm-render-source 3 0% helm-insert-match 3 0% #<compiled 0x1febfaff3a21> 1 0%
      • redisplay_internal (C function) 3 0%
      • eval 3 0%
      • tab-line-format 2 0% - tab-line-format-template 2 0% tab-line-auto-hscroll 2 0%
      • with-helm-buffer 1 0% - with-current-buffer 1 0%
        • save-current-buffer 1 0%
        • helm-show-candidate-number 1 0%
        • helm-get-candidate-number 1 0% helm-pos-header-line-p 1 0%
      • command-execute 2 0%
      • call-interactively 2 0%
      • funcall-interactively 2 0% - helm-ff-RET 1 0%
        • helm-ff-RET-1 1 0%
        • helm-ff--invalid-tramp-name-p 1 0% helm-ff-set-pattern 1 0%
      • minibuffer-inactive-mode 1 0%
      • run-mode-hooks 1 0%
      • run-hooks 1 0% - global-font-lock-mode-enable-in-buffers 1 0%
        • turn-on-font-lock-if-desired 1 0%
        • turn-on-font-lock 1 0%
        • font-lock-mode 1 0% remove-hook 1 0%
      • frame-windows-min-size 1 0%
      • window-min-size 1 0% window--min-size-1 1 0% helm-get-candidate-number 1 0% - helm-execute-selection-action 113 0%
      • helm-execute-selection-action-1 113 0%
      • helm-find-file-or-marked 113 0%
      • apply 113 0%
      • #<compiled 0x157c967e2bd1> 113 0% - find-file 113 0%
        • find-file-noselect 113 0%
        • find-file-noselect-1 108 0%
        • after-find-file 107 0%
        • normal-mode 105 0% - set-auto-mode 104 0%
          • set-auto-mode-0 104 0%
          • java-mode 104 0%
          • run-mode-hooks 96 0%
          • apply 95 0% - run-hooks 95 0%
            • lsp 95 0%
            • lsp--filter-clients 48 0%
            • -filter 48 0%
            • #<compiled 0x157c965a243d> 48 0% - apply 48 0%
              • lsp--supports-buffer? 47 0%
              • #<compiled 0x157c97058f51> 43 0%
              • lsp-buffer-language 43 0%
              • -first 43 0% - #<compiled 0x157c9656c575> 43 0% s-matches? 42 0%
              • lsp-toml--check-enabled 3 0%
              • lsp-buffer-language 3 0%
              • -first 3 0% - #<compiled 0x157c9656c575> 3 0% s-matches? 3 0%
              • lsp-volar--activate-p 1 0%
              • lsp-workspace-root 1 0%
              • lsp-f-ancestor-of? 1 0% lsp-f-canonical 1 0%
              • lsp--server-binary-present? 1 0%
              • lsp-java--locate-server-jar 1 0%
              • f-glob 1 0% file-expand-wildcards 1 0%
            • lsp--try-project-root-workspaces 46 0%
            • lsp--find-clients 42 0%
            • lsp--filter-clients 42 0% - -filter 42 0%
              • #<compiled 0x157c965a00f9> 42 0%
              • apply 42 0%
              • lsp--supports-buffer? 41 0%
              • #<compiled 0x157c97058f51> 38 0% - lsp-buffer-language 38 0%
                • -first 38 0%
                • #<compiled 0x157c9656c575> 38 0% s-matches? 38 0%
              • lsp-toml--check-enabled 2 0% - lsp-buffer-language 2 0%
                • -first 2 0%
                • #<compiled 0x157c9656c575> 2 0% s-matches? 2 0%
              • lsp-volar--activate-p 1 0% - lsp-workspace-root 1 0%
                • lsp-f-ancestor-of? 1 0%
                • lsp-f-same? 1 0% lsp-f-canonical 1 0%
              • lsp--server-binary-present? 1 0%
              • lsp-java--locate-server-jar 1 0% - f-glob 1 0% file-expand-wildcards 1 0%
            • lsp--ensure-lsp-servers 3 0%
            • -map 3 0% - mapcar 3 0%
              • #<compiled 0x157c9864fec5> 3 0%
              • lsp--find-workspace 3 0%
              • lsp--open-in-workspace 3 0%
              • lsp--text-document-did-open 3 0% - lsp-buffer-language 1 0%
                • -first 1 0%
                • #<compiled 0x157c9656c575> 1 0% s-matches? 1 0% - lsp-notify 1 0%
                • lsp--send-notification 1 0%
                • mapcar 1 0%
                • #<compiled 0x157c975b5fed> 1 0% lsp--send-no-wait 1 0% - lsp-managed-mode 1 0%
                • lsp-configure-buffer 1 0%
                • dap-auto-configure-mode 1 0%
                • seq-do 1 0%
                • mapc 1 0% - #<compiled 0x157c9669ea69> 1 0% dap-tooltip-mode 1 0%
            • lsp--calculate-root 1 0%
            • lsp-f-ancestor-of? 1 0% lsp-f-same? 1 0%
            • lsp-mode 1 0%
            • run-hooks 1 0%
            • lsp-enable-which-key-integration 1 0% - apply 1 0%
              • #<compiled 0x157c9b131b8d> 1 0%
              • apply 1 0%
              • which-key-add-major-mode-key-based-replacements 1 0%
              • kbd 1 0% read-kbd-macro 1 0%
          • hack-local-variables 1 0% - hack-dir-local-variables 1 0%
            • dir-locals-find-file 1 0% locate-dominating-file 1 0%
          • c-common-init 8 0%
          • mapc 8 0% - #<compiled 0x157c966223ed> 7 0%
            • c-restore-<>-properties 6 0%
            • c-forward-<>-arglist 3 0%
            • c-forward-<>-arglist-recur 3 0%
            • c-forward-type 2 0% - c-forward-sws 1 0% apply 1 0%
            • c-forward-sws 1 0% - apply 1 0%
              • #<compiled 0x157c96aaa055> 1 0%
              • apply 1 0% #<compiled 0x157c965efec1> 1 0% c-syntactic-re-search-forward 2 0%
            • c-backward-sws 1 0%
            • apply 1 0%
            • #<compiled 0x157c96aaa11d> 1 0% - apply 1 0% #<compiled 0x157c965f1161> 1 0% c-after-change-mark-abnormal-strings 1 0% - #<compiled 0x157c966223e1> 1 0%
            • c-before-change-check-unbalanced-strings 1 0%
            • c-literal-limits 1 0%
            • c-full-pp-to-literal 1 0% c-parse-ps-state-below 1 0% - run-hooks 1 0%
          • magit-auto-revert-mode-enable-in-buffers 1 0%
          • magit-turn-on-auto-revert-mode-if-desired 1 0%
          • magit-toplevel 1 0%
          • magit-rev-parse-safe 1 0% - apply 1 0%
            • magit-git-str 1 0%
            • generate-new-buffer 1 0%
            • get-buffer-create 1 0% run-hooks 1 0%
        • run-hooks 2 0% - projectile-find-file-hook-function 1 0%
          • projectile-track-known-projects-find-file-hook 1 0%
          • projectile-add-known-project 1 0%
          • projectile-merge-known-projects 1 0%
          • projectile-unserialize 1 0% generate-new-buffer 1 0% - vc-refresh-state 1 0%
          • vc-backend 1 0%
          • vc-registered 1 0%
          • mapc 1 0%
          • #<compiled 0x157c9a27c0ad> 1 0% - vc-call-backend 1 0%
            • apply 1 0%
            • vc-git-registered 1 0%
            • vc-git-root 1 0%
            • vc-find-root 1 0% locate-dominating-file 1 0% file-truename 1 0%
        • file-truename 1 0%
        • file-truename 1 0%
        • file-truename 1 0% file-truename 1 0%
        • find-buffer-visiting 1 0%
        • file-truename 1 0%
        • file-truename 1 0% - file-truename 1 0%
          • file-truename 1 0%
          • file-truename 1 0%
          • file-truename 1 0%
          • file-truename 1 0% - file-truename 1 0% file-truename 1 0% - #<compiled 0x157c966e8485> 4 0%
      • helm-cleanup 4 0%
      • helm-frame-or-window-configuration 4 0% select-frame-set-input-focus 4 0% - helm-display-buffer 2 0%
      • helm-default-display-buffer 2 0%
      • display-buffer 2 0%
      • display-buffer--maybe-pop-up-frame-or-window 2 0%
      • display-buffer--maybe-pop-up-window 2 0% - display-buffer-pop-up-window 2 0% window--maybe-raise-frame 2 0% - projectile-project-p 2 0%
    • projectile-project-root 2 0%
    • cl-some 2 0%
    • #<compiled 0x157c9b835d61> 2 0%
    • file-truename 2 0% - file-truename 2 0%
      • file-truename 2 0% file-truename 2 0% - projectile-prepend-project-name 1 0%
    • projectile-project-name 1 0%
    • projectile-project-root 1 0%
    • cl-some 1 0%
    • #<compiled 0x157c9b835dcd> 1 0% - file-truename 1 0%
      • file-truename 1 0%
      • file-truename 1 0%
      • file-truename 1 0%
      • file-truename 1 0% - file-truename 1 0%
        • file-truename 1 0% file-truename 1 0% - projectile-maybe-invalidate-cache 1 0%
    • projectile-dirconfig-file 1 0%
    • projectile-project-root 1 0%
    • cl-some 1 0% #<compiled 0x157c9611d3f5> 1 0%
  • self-insert-command 296 2% - c-after-change 94 0%
    • #<compiled 0x157c96625f45> 36 0% c-clear-string-fences 36 0%
    • mapc 30 0%
    • #<compiled 0x157c966260dd> 29 0%
    • c-change-expand-fl-region 24 0%
    • c-fl-decl-start 13 0% - c-determine-limit 7 0%
      • c-backward-sws 2 0%
      • apply 2 0%
      • #<compiled 0x157c96aaa11d> 2 0%
      • apply 2 0% #<compiled 0x157c965f1161> 1 0% c-semi-pp-to-literal 1 0% - c-literal-start 2 0% c-semi-pp-to-literal 1 0% - c-forward-sws 1 0%
      • apply 1 0%
      • #<compiled 0x157c96aaa055> 1 0% apply 1 0% - c-syntactic-skip-backward 1 0%
      • c-backward-sws 1 0%
      • apply 1 0%
      • #<compiled 0x157c96aaa11d> 1 0% apply 1 0% - c-parse-state 1 0%
      • c-parse-state-1 1 0% c-append-to-state-cache 1 0%
    • c-fl-decl-end 11 0% - c-forward-declarator 5 0%
      • c-forward-name 2 0%
      • c-forward-sws 1 0%
      • apply 1 0%
      • #<compiled 0x157c96aaa055> 1 0% - apply 1 0% #<compiled 0x157c965efec1> 1 0% c-syntactic-re-search-forward 1 0%
      • c-backward-sws 1 0%
      • apply 1 0%
      • #<compiled 0x157c96aaa11d> 1 0%
      • apply 1 0% #<compiled 0x157c965f1161> 1 0% - c-literal-start 2 0% c-semi-pp-to-literal 1 0% c-on-identifier 2 0% - c-backward-sws 1 0%
      • apply 1 0%
      • #<compiled 0x157c96aaa11d> 1 0%
      • apply 1 0% #<compiled 0x157c965f1161> 1 0% - c-forward-token-2 1 0%
      • c-forward-sws 1 0%
      • apply 1 0%
      • #<compiled 0x157c96aaa055> 1 0%
      • apply 1 0% #<compiled 0x157c965efec1> 1 0%
    • c-restore-<>-properties 2 0%
    • c-literal-limits 2 0% c-full-pp-to-literal 2 0% c-after-change-mark-abnormal-strings 1 0% c-restore-string-fences 19 0%
    • c-invalidate-sws-region-after 2 0%
    • c-invalidate-sws-region-after-ins 2 0%
    • c-literal-limits 2 0%
    • c-full-pp-to-literal 1 0% c-full-put-near-cache-entry 1 0%
    • c-trim-found-types 1 0%
    • c-beginning-of-current-token 1 0%
    • skip-syntax-backward 1 0% internal--syntax-propertize 1 0% c-called-from-text-property-change-p 1 0% c-clear-char-property-with-value-function 1 0% - c-before-change 78 0%
    • #<compiled 0x157c96625ef9> 39 0% c-clear-string-fences 38 0% c-restore-string-fences 17 0%
    • mapc 17 0%
    • #<compiled 0x157c96625f05> 17 0%
    • c-before-change-check-unbalanced-strings 10 0%
    • c-literal-limits 7 0% - c-full-pp-to-literal 4 0% c-full-get-near-cache-entry 1 0% c-parse-quotes-before-change 3 0%
    • c-invalidate-sws-region-before 3 0%
    • c-literal-limits 3 0%
    • c-full-pp-to-literal 2 0%
    • c-full-get-near-cache-entry 1 0% copy-tree 1 0% c-unfind-enclosing-token 1 0%
    • c-invalidate-state-cache 1 0%
    • c-invalidate-state-cache-1 1 0% c-append-lower-brace-pair-to-state-cache 1 0% - lsp-on-change 56 0%
    • mapc 48 0%
    • #<compiled 0x157c9879f2c9> 48 0%
    • lsp--text-document-content-change-event 42 0%
    • lsp--point-to-position 42 0% - lsp--cur-position 42 0%
      • lsp--cur-line 42 0% line-number-at-pos 41 0%
    • lsp-notify 4 0%
    • lsp--send-notification 4 0% - mapcar 4 0%
      • #<compiled 0x157c98fe68b5> 3 0% lsp--make-message 2 0% lsp--send-no-wait 1 0% lsp--workspace-sync-method 1 0%
    • run-with-idle-timer 3 0%
    • timer-activate-when-idle 3 0%
    • timer--activate 3 0% timer--time-less-p 3 0%
    • lsp--after-change 2 0% lsp--semantic-tokens-refresh-if-enabled 1 0% cancel-timer 1 0%
    • lsp--remove-overlays 2 0% remove-overlays 2 0% - electric-pair-post-self-insert-function 33 0%
    • electric-pair-default-skip-self 14 0%
    • electric-pair-skip-if-helps-balance 14 0%
    • delete-char 9 0%
    • c-before-change 6 0% - mapc 4 0%
      • #<compiled 0x157c96625f05> 4 0%
      • c-before-change-check-<>-operators 3 0% c-syntactic-re-search-forward 2 0% c-determine-+ve-limit 1 0%
      • c-before-change-check-unbalanced-strings 1 0% c-remove-string-fences 1 0% - #<compiled 0x157c96625ef9> 2 0% c-clear-string-fences 2 0%
    • c-after-change 3 0% c-restore-string-fences 1 0% - #<compiled 0x157c96625f45> 1 0% c-clear-string-fences 1 0% - mapc 1 0%
      • #<compiled 0x157c966260dd> 1 0% c-restore-<>-properties 1 0%
    • #<compiled 0x157c98510f11> 5 0%
    • c-after-change 2 0% - #<compiled 0x157c96625f45> 1 0% c-clear-string-fences 1 0% - c-invalidate-sws-region-after 1 0%
      • c-invalidate-sws-region-after-ins 1 0%
      • c-literal-limits 1 0% c-full-pp-to-literal 1 0%
    • c-before-change 2 0% - #<compiled 0x157c96625ef9> 1 0% c-clear-string-fences 1 0% c-unfind-enclosing-token 1 0%
    • lsp-on-change 1 0% - mapc 1 0%
      • #<compiled 0x157c9939a3f1> 1 0%
      • lsp--text-document-content-change-event 1 0%
      • lsp--point-to-position 1 0%
      • lsp--cur-position 1 0% - lsp--cur-line 1 0% line-number-at-pos 1 0%
    • c-electric-pair-inhibit-predicate 7 0%
    • electric-pair-default-inhibit 7 0%
    • electric-pair-inhibit-if-helps-balance 7 0%
    • delete-char 4 0% - c-before-change 3 0%
      • mapc 3 0%
      • #<compiled 0x157c96625f05> 3 0%
      • c-before-change-check-<>-operators 2 0% c-determine-+ve-limit 1 0% c-syntactic-re-search-forward 1 0%
      • c-before-change-check-unbalanced-strings 1 0%
      • c-literal-limits 1 0% c-full-pp-to-literal 1 0%
    • #<compiled 0x157c9747394d> 2 0% - cancel-change-group 2 0%
      • undo-more 2 0%
      • primitive-undo 2 0%
      • c-after-change 1 0%
      • mapc 1 0% - #<compiled 0x157c966260dd> 1 0%
        • c-change-expand-fl-region 1 0%
        • c-fl-decl-start 1 0% c-determine-limit 1 0% lsp-on-change 1 0%
    • electric-pair--unbalanced-strings-p 1 0% syntax-ppss 1 0%
    • electric-pair-syntax-info 6 0% syntax-ppss 5 0%
    • electric-pair--insert 5 0%
    • self-insert-command 5 0%
    • lsp-on-change 2 0%
    • mapc 2 0% - #<compiled 0x157c992177d1> 2 0%
      • lsp--text-document-content-change-event 1 0%
      • lsp--point-to-position 1 0%
      • lsp--cur-position 1 0%
      • lsp--cur-line 1 0% line-number-at-pos 1 0%
      • lsp-notify 1 0%
      • lsp--send-notification 1 0%
      • mapcar 1 0%
      • #<compiled 0x157c976fab31> 1 0% lsp--make-message 1 0%
    • c-before-change 2 0% c-restore-string-fences 1 0%
    • #<compiled 0x157c96625ef9> 1 0% c-clear-string-fences 1 0%
    • c-after-change 1 0%
    • mapc 1 0% - #<compiled 0x157c966260dd> 1 0%
      • c-change-expand-fl-region 1 0%
      • c-fl-decl-start 1 0% c-determine-limit 1 0% - yas--on-field-overlay-modification 12 0%
    • eval 12 0%
    • let 12 0%
    • funcall 12 0%
    • #<compiled 0x157c9649e261> 12 0% - yas--skip-and-clear 12 0%
      • c-before-change 6 0%
      • mapc 4 0%
      • #<compiled 0x157c96625f05> 4 0%
      • c-before-change-check-<>-operators 4 0% c-determine-limit 2 0% c-syntactic-re-search-forward 1 0% c-determine-+ve-limit 1 0%
      • #<compiled 0x157c96625ef9> 1 0% c-clear-string-fences 1 0% c-restore-string-fences 1 0%
      • c-after-change 5 0%
      • #<compiled 0x157c96625f45> 3 0% c-clear-string-fences 3 0%
      • mapc 2 0%
      • #<compiled 0x157c966260dd> 2 0%
      • c-restore-<>-properties 1 0% - c-forward-<>-arglist 1 0%
        • c-forward-<>-arglist-recur 1 0% c-forward-type 1 0%
      • lsp-on-change 1 0%
      • mapc 1 0%
      • #<compiled 0x157c9acdf105> 1 0%
      • lsp-notify 1 0% - lsp--send-notification 1 0%
        • mapcar 1 0%
        • #<compiled 0x157c9acdf189> 1 0% lsp--send-no-wait 1 0% - lsp-before-change 10 0%
    • lsp--point-to-position 9 0%
    • lsp--cur-position 9 0%
    • lsp--cur-line 9 0% line-number-at-pos 8 0% - jit-lock-after-change 3 0%
    • run-hook-with-args 3 0%
    • font-lock-extend-jit-lock-region-after-change 2 0% c-extend-after-change-region 1 0% - flycheck-handle-change 3 0%
    • run-at-time 3 0% timer-relative-time 2 0%
    • timer-set-time 1 0% timer--time-setter 1 0% #<compiled 0x157c9c0653b5> 1 0%
  • company-complete-selection 231 1% - company-finish 231 1%
    • company-cancel 178 1%
    • company-call-backend 177 1%
    • company--force-sync 177 1%
    • apply 177 1% - company-call-backend-raw 177 1%
      • apply 177 1%
      • company-capf 177 1%
      • company--capf-post-completion 177 1%
      • #<compiled 0x157c9a748d35> 177 1% - apply 177 1%
        • lsp-completion--exit-fn 176 1%
        • lsp--expand-snippet 102 0%
        • yas-expand-snippet 102 0%
        • sit-for 67 0% - redisplay 64 0%
          • redisplay_internal (C function) 21 0%
          • jit-lock-function 18 0%
          • jit-lock-fontify-now 17 0%
          • jit-lock--run-functions 17 0% - run-hook-wrapped 17 0%
            • #<compiled 0x157c9682e2bd> 17 0%
            • font-lock-fontify-region 17 0%
            • c-font-lock-fontify-region 17 0%
            • font-lock-default-fontify-region 16 0% - font-lock-fontify-keywords-region 16 0%
              • c-font-lock-declarations 7 0%
              • c-find-decl-spots 7 0%
              • #<compiled 0x157c965d9a65> 7 0%
              • c-forward-decl-or-cast-1 5 0% c-forward-type 2 0%
              • c-forward-label 1 0% c-syntactic-re-search-forward 1 0% c-get-fontification-context 1 0% c-font-lock-<>-arglists 4 0% c-font-lock-enclosing-decls 2 0% #<compiled 0x157c965caf39> 1 0%
              • c-font-lock-complex-decl-prepare 1 0%
              • c-parse-state 1 0%
              • c-parse-state-1 1 0% c-remove-stale-state-cache 1 0% c-font-lock-enum-body 1 0%
          • #<compiled 0x1febfb07f87b> 2 0% apply 2 0%
          • eval 1 0%
          • lsp-modeline--diagnostics-update-modeline 1 0%
          • #<compiled 0x157c97272b81> 1 0% lsp-modeline-diagnostics-statistics 1 0%
        • yas--snippet-create 18 0% - eval 18 0%
          • let 18 0%
          • funcall 18 0%
          • #<compiled 0x157c964a0031> 18 0%
          • run-hook-with-args 17 0% - c-after-change 8 0%
            • #<compiled 0x157c96625f45> 4 0% c-clear-string-fences 3 0%
            • mapc 3 0%
            • #<compiled 0x157c966260dd> 3 0%
            • c-change-expand-fl-region 2 0%
            • c-fl-decl-start 1 0% - c-syntactic-skip-backward 1 0%
              • c-backward-sws 1 0%
              • apply 1 0%
              • #<compiled 0x157c96aaa11d> 1 0% apply 1 0%
            • c-fl-decl-end 1 0% - c-forward-declarator 1 0% c-forward-name 1 0%
            • c-called-from-text-property-change-p 1 0% backtrace-frame 1 0% - c-before-change 5 0%
            • #<compiled 0x157c96625ef9> 4 0% c-clear-string-fences 4 0%
            • mapc 1 0% #<compiled 0x157c96625f05> 1 0% - lsp-on-change 2 0%
            • mapc 2 0%
            • #<compiled 0x157c997a85cd> 2 0%
            • lsp--text-document-content-change-event 2 0%
            • lsp--point-to-position 2 0% - lsp--cur-position 2 0%
              • lsp--cur-line 2 0% line-number-at-pos 2 0% - lsp-before-change 1 0%
            • lsp--point-to-position 1 0%
            • lsp--cur-position 1 0%
            • lsp--cur-line 1 0% line-number-at-pos 1 0% flycheck-handle-change 1 0%
          • yas--snippet-parse-create 1 0% - yas--protect-escapes 1 0%
            • mapc 1 0% #<compiled 0x157c964a171d> 1 0%
        • c-after-change 10 0% - #<compiled 0x157c96625f45> 5 0% c-clear-string-fences 5 0% - mapc 4 0%
          • #<compiled 0x157c966260dd> 4 0%
          • c-change-expand-fl-region 3 0%
          • c-fl-decl-start 2 0%
          • c-determine-limit 1 0% - c-semi-pp-to-literal 1 0%
            • c-semi-get-near-cache-entry 1 0% copy-tree 1 0%
          • c-fl-decl-end 1 0%
          • c-forward-declarator 1 0% - c-forward-name 1 0%
            • c-forward-sws 1 0%
            • apply 1 0%
            • #<compiled 0x157c96aaa055> 1 0%
            • apply 1 0% #<compiled 0x157c965efec1> 1 0% c-restore-<>-properties 1 0% c-restore-string-fences 1 0%
        • c-before-change 6 0% c-restore-string-fences 4 0% - mapc 2 0%
          • #<compiled 0x157c96625f05> 2 0%
          • c-before-change-check-<>-operators 1 0% c-determine-+ve-limit 1 0%
          • c-before-change-check-unbalanced-strings 1 0% c-literal-limits 1 0%
        • lsp-on-change 1 0% - mapc 1 0%
          • #<compiled 0x157c9935b14d> 1 0%
          • lsp--text-document-content-change-event 1 0%
          • lsp--point-to-position 1 0%
          • lsp--cur-position 1 0% - lsp--cur-line 1 0% line-number-at-pos 1 0%
        • lsp--apply-text-edit 30 0%
        • c-after-change 13 0%
        • mapc 6 0% - #<compiled 0x157c966260dd> 6 0%
          • c-change-expand-fl-region 4 0%
          • c-fl-decl-end 2 0% c-on-identifier 1 0% c-literal-start 1 0%
          • c-fl-decl-start 2 0%
          • c-forward-sws 1 0%
          • apply 1 0% - #<compiled 0x157c96aaa055> 1 0% apply 1 0% c-literal-start 1 0% c-after-change-mark-abnormal-strings 2 0%
        • #<compiled 0x157c96625f45> 2 0% c-clear-string-fences 2 0% c-restore-string-fences 2 0%
        • c-trim-found-types 1 0% c-beginning-of-current-token 1 0%
        • c-invalidate-sws-region-after 1 0% - c-invalidate-sws-region-after-ins 1 0%
          • c-literal-limits 1 0% c-full-pp-to-literal 1 0%
        • c-before-change 12 0%
        • #<compiled 0x157c96625ef9> 5 0% c-clear-string-fences 5 0%
        • mapc 3 0% - #<compiled 0x157c96625f05> 3 0%
          • c-before-change-check-<>-operators 1 0%
          • c-determine-limit 1 0%
          • c-backward-sws 1 0%
          • apply 1 0% - #<compiled 0x157c96aaa11d> 1 0%
            • apply 1 0% #<compiled 0x157c965f1161> 1 0%
          • c-before-change-check-unbalanced-strings 1 0% c-literal-limits 1 0% c-parse-quotes-before-change 1 0% c-restore-string-fences 3 0% lsp--position-to-point 3 0%
        • lsp-before-change 1 0%
        • lsp--point-to-position 1 0% - lsp--cur-position 1 0%
          • lsp--cur-line 1 0% line-number-at-pos 1 0%
        • lsp-on-change 1 0%
        • mapc 1 0% - #<compiled 0x157c9778bc35> 1 0%
          • lsp--text-document-content-change-event 1 0%
          • lsp--point-to-position 1 0%
          • lsp--cur-position 1 0%
          • lsp--cur-line 1 0% line-number-at-pos 1 0%
        • apply 22 0%
        • delete-region 21 0%
        • c-before-change 10 0% c-restore-string-fences 4 0% - #<compiled 0x157c96625ef9> 3 0% c-clear-string-fences 3 0% - mapc 2 0%
          • #<compiled 0x157c96625f05> 2 0%
          • c-before-change-check-<>-operators 2 0%
          • c-syntactic-skip-backward 1 0%
          • c-backward-sws 1 0% - apply 1 0%
            • #<compiled 0x157c96aaa11d> 1 0%
            • apply 1 0% #<compiled 0x157c965f1161> 1 0% c-determine-limit 1 0% - c-invalidate-sws-region-before 1 0%
          • c-literal-limits 1 0%
          • c-full-pp-to-literal 1 0% c-full-get-near-cache-entry 1 0%
        • c-after-change 8 0% - #<compiled 0x157c96625f45> 5 0% c-clear-string-fences 5 0% c-restore-string-fences 2 0% - mapc 1 0%
          • #<compiled 0x157c966260dd> 1 0%
          • c-change-expand-fl-region 1 0%
          • c-fl-decl-start 1 0%
          • c-syntactic-skip-backward 1 0% - c-backward-sws 1 0%
            • apply 1 0%
            • #<compiled 0x157c96aaa11d> 1 0% apply 1 0%
        • lsp-on-change 3 0% - mapc 3 0%
          • #<compiled 0x157c97b9f6a5> 3 0%
          • lsp--text-document-content-change-event 2 0%
          • lsp--point-to-position 1 0%
          • lsp--cur-position 1 0% - lsp--cur-line 1 0% line-number-at-pos 1 0%
          • lsp-notify 1 0%
          • lsp--send-notification 1 0%
          • mapcar 1 0% - #<compiled 0x157c96b98b0d> 1 0% lsp--send-no-wait 1 0%
        • c-after-change 6 0%
        • mapc 4 0%
        • #<compiled 0x157c966260dd> 4 0% - c-change-expand-fl-region 4 0%
          • c-fl-decl-start 2 0% c-syntactic-skip-backward 1 0%
          • c-fl-decl-end 2 0%
          • c-forward-declarator 1 0%
          • c-backward-sws 1 0%
          • apply 1 0% - #<compiled 0x157c96aaa11d> 1 0% apply 1 0%
        • #<compiled 0x157c96625f45> 2 0% c-clear-string-fences 2 0%
        • lsp--indent-lines 6 0% line-number-at-pos 6 0%
        • lsp-before-change 3 0%
        • lsp--point-to-position 3 0%
        • lsp--cur-position 3 0% - lsp--cur-line 3 0% line-number-at-pos 3 0%
        • lsp-completion--resolve-async 3 0%
        • lsp-request-async 3 0%
        • lsp--send-request-async 3 0% - lsp--find-workspaces-for 2 0%
          • #<lambda 0xe2c35ce1> 2 0%
          • with-lsp-workspace 1 0%
          • let 1 0%
          • lsp:completion-options-resolve-provider? 1 0% - lsp--capability 1 0% lsp--server-capabilities 1 0% - seq-do 1 0%
          • mapc 1 0%
          • #<compiled 0x157c96f36169> 1 0% lsp--send-no-wait 1 0%
        • lsp-on-change 1 0%
        • mapc 1 0%
        • #<compiled 0x157c99491eed> 1 0% - lsp-notify 1 0%
          • lsp--send-notification 1 0%
          • mapcar 1 0%
          • #<compiled 0x157c99491fa1> 1 0% lsp--make-message 1 0%
        • c-before-change 1 0%
        • #<compiled 0x157c96625ef9> 1 0% c-clear-string-fences 1 0% company-search-mode 1 0%
    • company--insert-candidate 52 0%
    • c-after-change 21 0%
    • mapc 10 0%
    • #<compiled 0x157c966260dd> 10 0% - c-change-expand-fl-region 7 0%
      • c-fl-decl-start 7 0%
      • c-syntactic-skip-backward 3 0%
      • c-backward-sws 2 0%
      • apply 2 0% - #<compiled 0x157c96aaa11d> 2 0% apply 2 0%
      • c-beginning-of-macro 1 0%
      • apply 1 0% - #<compiled 0x157c96aaa1e5> 1 0% apply 1 0%
      • c-determine-limit 2 0%
      • c-backward-sws 2 0%
      • apply 2 0% - #<compiled 0x157c96aaa11d> 2 0% apply 2 0%
      • c-parse-state 2 0%
      • c-parse-state-1 2 0% c-append-lower-brace-pair-to-state-cache 1 0% c-append-to-state-cache 1 0% - c-after-change-mark-abnormal-strings 2 0% c-literal-limits 1 0% c-depropertize-new-text 1 0%
    • #<compiled 0x157c96625f45> 3 0% c-clear-string-fences 3 0% c-restore-string-fences 3 0%
    • c-trim-found-types 3 0%
    • c-beginning-of-current-token 3 0% - skip-syntax-backward 1 0% internal--syntax-propertize 1 0%
    • c-invalidate-sws-region-after 1 0%
    • c-invalidate-sws-region-after-ins 1 0% - c-literal-limits 1 0%
      • c-full-pp-to-literal 1 0% c-parse-ps-state-below 1 0%
    • c-before-change 17 0% c-restore-string-fences 6 0%
    • mapc 5 0%
    • #<compiled 0x157c96625f05> 5 0% - c-before-change-check-<>-operators 4 0% c-determine-+ve-limit 2 0% c-determine-limit 1 0%
    • #<compiled 0x157c96625ef9> 3 0% c-clear-string-fences 3 0%
    • c-invalidate-state-cache 2 0% c-invalidate-state-cache-1 1 0%
    • c-unfind-coalesced-tokens 1 0%
    • c-forward-sws 1 0% - apply 1 0%
      • #<compiled 0x157c96aaa055> 1 0%
      • apply 1 0% #<compiled 0x157c965efec1> 1 0%
    • lsp-on-change 10 0%
    • mapc 7 0%
    • #<compiled 0x157c967a50e5> 6 0% - lsp--text-document-content-change-event 4 0%
      • lsp--point-to-position 4 0%
      • lsp--cur-position 4 0%
      • lsp--cur-line 4 0% line-number-at-pos 4 0% - lsp-notify 1 0%
      • lsp--send-notification 1 0%
      • mapcar 1 0%
      • #<compiled 0x157c98dcd1c1> 1 0% lsp--make-message 1 0%
    • lsp--remove-overlays 1 0% remove-overlays 1 0%
    • lsp--after-change 1 0% lsp--idle-reschedule 1 0%
    • run-with-idle-timer 1 0%
    • timer-activate-when-idle 1 0% - timer--activate 1 0% timer--time-less-p 1 0%
    • lsp-before-change 3 0%
    • lsp--point-to-position 3 0%
    • lsp--cur-position 3 0% - lsp--cur-line 3 0% line-number-at-pos 3 0%
  • next-line 182 1% - line-move 182 1%
    • line-move-visual 123 0%
    • posn-at-point 2 0%
    • eval 2 0%
    • mapconcat 1 0% lsp--workspace-print 1 0% tab-line-format 1 0%
    • line-move-partial 7 0%
    • default-line-height 4 0% default-font-height 4 0%
    • window-screen-lines 3 0%
    • default-line-height 2 0% default-font-height 2 0%
    • window-inside-pixel-edges 1 0% window-edges 1 0%
    • default-line-height 5 0% default-font-height 4 0%
  • helm-M-x 132 1% - helm-M-x-read-extended-command 131 1%
    • helm 131 1%
    • apply 131 1%
    • helm 131 1%
    • apply 131 1% - helm-internal 131 1%
      • helm-read-from-minibuffer 125 1%
      • read-from-minibuffer 102 0%
      • #<compiled 0x157c971fb7a1> 53 0% apply 5 0% #<compiled 0x157c9c0ec9bd> 1 0%
      • mapc 1 0% - #<compiled 0x157c9d15b0a9> 1 0%
        • lsp--parser-on-message 1 0%
        • lsp--on-notification 1 0%
        • lsp--on-diagnostics 1 0%
        • lsp--on-diagnostics-update-stats 1 0% - lsp--uri-to-path 1 0% lsp--uri-to-path-1 1 0% split-string 1 0%
      • timer-event-handler 11 0%
      • apply 10 0% - #<compiled 0x157c966eadb9> 8 0%
        • helm-check-minibuffer-input 8 0%
        • helm-check-new-input 8 0%
        • helm-update 8 0%
        • helm--update-move-first-line 7 0% - helm-move-selection-common 7 0% helm-display-mode-line 6 0% helm-empty-buffer-p 1 0% helm-render-source 1 0% - auto-revert-buffers 2 0%
        • apply 2 0%
        • auto-revert-buffers--buffer-list-filter 2 0%
        • #<compiled 0x157c965e45a5> 2 0%
        • mapcar 2 0% - #<compiled 0x157c965e4555> 1 0% file-remote-p 1 0%
      • timer-activate-when-idle 1 0% - timer--activate 1 0% timer--time-less-p 1 0%
      • redisplay_internal (C function) 2 0%
      • eval 1 0% - with-helm-buffer 1 0%
        • with-current-buffer 1 0%
        • save-current-buffer 1 0%
        • helm-show-candidate-number 1 0% helm-empty-source-p 1 0%
      • #<compiled 0x1febfb07f87b> 1 0% - apply 1 0%
        • redisplay--pre-redisplay-functions 1 0%
        • run-hook-with-args 1 0% redisplay--update-region-highlight 1 0%
      • helm-update 7 0%
      • helm--collect-matches 7 0%
      • helm-compute-matches 7 0% - helm-process-filtered-candidate-transformer 7 0%
        • helm-apply-functions-from-source 7 0%
        • apply 7 0%
        • helm-fuzzy-highlight-matches 7 0%
        • helm-flx-fuzzy-highlight-match 7 0% - helm-flx-fuzzy-highligher 6 0%
          • #<compiled 0x157c9b90ae8d> 6 0%
          • kill-buffer 2 0% run-hooks 2 0%
      • helm-initialize 3 0%
      • helm-initial-setup 3 0%
      • helm-compute-attr-in-sources 3 0%
      • helm-apply-functions-from-source 3 0% - apply 3 0%
        • #<compiled 0x157c9afe10e1> 3 0%
        • #<compiled 0x157c9a60ec29> 3 0% helm-comp-read-get-candidates 3 0%
      • helm-display-buffer 1 0%
      • helm-default-display-buffer 1 0%
      • display-buffer 1 0%
      • display-buffer--maybe-pop-up-frame-or-window 1 0% - display-buffer--maybe-pop-up-window 1 0%
        • display-buffer-pop-up-window 1 0% window--maybe-raise-frame 1 0%
      • #<compiled 0x157c966e8485> 1 0%
      • helm-cleanup 1 0%
      • helm-frame-or-window-configuration 1 0% select-frame-set-input-focus 1 0%
      • helm-execute-selection-action 1 0%
      • helm-execute-selection-action-1 1 0%
      • helm-M-x-execute-command 1 0%
      • command-execute 1 0% - call-interactively 1 0%
        • funcall-interactively 1 0% profiler-stop 1 0%
  • previous-line 82 0% - line-move 82 0% line-move-visual 65 0%
    • line-move-partial 2 0%
    • default-line-height 2 0% default-font-height 2 0%
  • newline 55 0% - self-insert-command 54 0%
    • electric-indent-post-self-insert-function 30 0%
    • indent-according-to-mode 30 0%
    • c-indent-line 30 0%
    • c-shift-line-indentation 18 0% - c-before-change 6 0%
      • #<compiled 0x157c96625ef9> 2 0% c-clear-string-fences 2 0%
      • c-unfind-enclosing-token 1 0% c-beginning-of-current-token 1 0% c-restore-string-fences 1 0%
      • mapc 1 0%
      • #<compiled 0x157c96625f05> 1 0% c-before-change-check-unbalanced-strings 1 0%
      • c-called-from-text-property-change-p 1 0% backtrace-frame 1 0% - c-after-change 5 0%
      • #<compiled 0x157c96625f45> 3 0% c-clear-string-fences 2 0%
      • mapc 2 0%
      • #<compiled 0x157c966260dd> 2 0%
      • c-change-expand-fl-region 1 0%
      • c-fl-decl-start 1 0% - c-determine-limit 1 0%
        • c-backward-sws 1 0%
        • apply 1 0%
        • #<compiled 0x157c96aaa11d> 1 0% apply 1 0%
      • c-after-change-mark-abnormal-strings 1 0% c-literal-limits 1 0% - lsp-on-change 3 0%
      • mapc 2 0%
      • #<compiled 0x157c979b2515> 2 0%
      • lsp--text-document-content-change-event 2 0%
      • lsp--point-to-position 1 0% - lsp--cur-position 1 0%
        • lsp--cur-line 1 0% line-number-at-pos 1 0%
      • run-with-idle-timer 1 0%
      • timer-activate-when-idle 1 0%
      • timer--activate 1 0% timer--time-less-p 1 0% - #<compiled 0x157c98e2e395> 2 0%
      • lsp--request-cleanup-hooks 1 0%
      • #<compiled 0x157c98e2e1fd> 1 0% mapc 1 0%
    • c-guess-basic-syntax 10 0% - c-inside-bracelist-p 3 0%
      • c-looking-at-or-maybe-in-bracelist 2 0%
      • c-backward-sws 1 0% apply 1 0%
      • c-backward-over-enum-header 1 0% c-on-identifier 1 0% - c-beginning-of-statement-1 2 0%
      • c-backward-sws 2 0%
      • apply 2 0%
      • #<compiled 0x157c96aaa11d> 2 0%
      • apply 2 0% #<compiled 0x157c965f1161> 1 0% - c-parse-state 2 0%
      • c-parse-state-1 2 0% c-append-to-state-cache 1 0% c-parse-state-get-strategy 1 0% - c-looking-at-inexpr-block 1 0%
      • c-backward-sws 1 0%
      • apply 1 0%
      • #<compiled 0x157c96aaa11d> 1 0%
      • apply 1 0% #<compiled 0x157c965f1161> 1 0%
    • c-before-change 9 0%
    • #<compiled 0x157c96625ef9> 3 0% c-clear-string-fences 3 0% c-restore-string-fences 3 0%
    • c-invalidate-state-cache 2 0%
    • c-invalidate-state-cache-1 2 0% c-append-lower-brace-pair-to-state-cache 2 0%
    • c-after-change 5 0%
    • mapc 2 0%
    • #<compiled 0x157c966260dd> 2 0%
    • c-change-expand-fl-region 2 0% - c-fl-decl-end 1 0%
      • c-backward-sws 1 0%
      • apply 1 0%
      • #<compiled 0x157c96aaa11d> 1 0% apply 1 0% - c-fl-decl-start 1 0% c-determine-limit 1 0%
    • #<compiled 0x157c96625f45> 2 0% c-clear-string-fences 2 0% c-restore-string-fences 1 0%
    • lsp-on-change 4 0%
    • mapc 3 0%
    • #<compiled 0x157c97e5d4ed> 3 0%
    • lsp-notify 2 0% - lsp--send-notification 1 0%
      • mapcar 1 0%
      • #<compiled 0x157c99d7a705> 1 0% lsp--make-message 1 0% lsp--text-document-content-change-event 1 0%
    • lsp--remove-overlays 1 0% remove-overlays 1 0%
    • #<compiled 0x157c975b60f1> 3 0%
    • lsp--on-type-formatting 3 0%
    • lsp-request-async 1 0% lsp--send-request-async 1 0%
    • lsp--cur-position 1 0%
    • lsp--cur-line 1 0% line-number-at-pos 1 0%
    • lsp-make-document-on-type-formatting-params 1 0%
    • -partition 1 0% -partition-in-steps 1 0%
    • flycheck-handle-change 1 0%
    • flycheck-buffer-automatically 1 0% flycheck-may-check-automatically 1 0%
    • electric-pair-post-self-insert-function 1 0%
    • electric-pair-syntax-info 1 0% syntax-ppss 1 0%
  • xref-find-definitions 51 0% - xref--find-definitions 51 0%
    • xref--show-defs 51 0%
    • xref--show-defs-buffer 51 0%
    • xref-pop-to-location 48 0%
    • run-hooks 30 0% - recenter 29 0%
      • jit-lock-function 29 0%
      • jit-lock-fontify-now 29 0%
      • jit-lock--run-functions 29 0%
      • run-hook-wrapped 29 0% - #<compiled 0x157c9a22febd> 29 0%
        • font-lock-fontify-region 29 0%
        • c-font-lock-fontify-region 29 0%
        • c-before-context-fl-expand-region 17 0%
        • mapc 17 0% - #<compiled 0x157c96626955> 17 0%
          • c-context-expand-fl-region 17 0%
          • c-fl-decl-start 16 0%
          • c-parse-state 14 0%
          • c-parse-state-1 14 0% c-append-to-state-cache 8 0% c-remove-stale-state-cache 6 0%
          • c-literal-start 2 0%
          • c-semi-pp-to-literal 2 0% c-parse-ps-state-below 2 0%
          • c-fl-decl-end 1 0%
          • c-literal-start 1 0% c-semi-pp-to-literal 1 0%
        • font-lock-default-fontify-region 12 0%
        • font-lock-fontify-keywords-region 12 0% - #<compiled 0x157c965caf39> 7 0%
          • c-beginning-of-decl-1 7 0%
          • c-backward-sws 5 0%
          • apply 5 0%
          • #<compiled 0x157c96aaa11d> 5 0% - apply 5 0% #<compiled 0x157c965f1161> 5 0% c-beginning-of-statement-1 1 0% - c-font-lock-declarations 2 0%
          • c-find-decl-spots 2 0%
          • #<compiled 0x157c965d9a65> 2 0%
          • c-forward-label 1 0% c-syntactic-re-search-forward 1 0% c-font-lock-<>-arglists 1 0% - c-font-lock-enclosing-decls 1 0%
          • c-parse-state 1 0%
          • c-parse-state-1 1 0% c-append-to-state-cache 1 0% - c-font-lock-cut-off-declarators 1 0%
          • c-parse-state 1 0%
          • c-parse-state-1 1 0% c-append-lower-brace-pair-to-state-cache 1 0%
    • xref-location-marker 18 0% - apply 18 0%
      • #<compiled 0x157c965634a5> 18 0%
      • find-file-noselect 18 0%
      • find-file-noselect-1 16 0%
      • after-find-file 15 0% - normal-mode 9 0%
        • set-auto-mode 6 0%
        • set-auto-mode-0 6 0%
        • java-mode 6 0%
        • run-mode-hooks 4 0% - run-hooks 3 0%
          • magit-auto-revert-mode-enable-in-buffers 3 0%
          • magit-turn-on-auto-revert-mode-if-desired 2 0%
          • magit-toplevel 1 0%
          • magit-rev-parse-safe 1 0% - apply 1 0%
            • magit-git-str 1 0%
            • generate-new-buffer 1 0%
            • get-buffer-create 1 0% run-hooks 1 0%
          • auto-revert-mode 1 0%
          • auto-revert-buffers 1 0% - apply 1 0%
            • auto-revert-buffers--buffer-list-filter 1 0%
            • #<compiled 0x157c965e45a5> 1 0%
            • auto-revert-notify-add-watch 1 0%
            • maphash 1 0% - #<compiled 0x157c97fbfc51> 1 0% file-notify--watch-absolute-filename 1 0%
          • auto-revert-mode 1 0%
          • auto-revert-set-timer 1 0% run-with-timer 1 0% - hack-local-variables 1 0%
          • hack-dir-local-variables 1 0%
          • dir-locals-find-file 1 0% locate-dominating-file 1 0%
        • c-common-init 2 0% - mapc 2 0%
          • #<compiled 0x157c966223e1> 1 0%
          • c-before-change-check-unbalanced-strings 1 0%
          • c-literal-limits 1 0%
          • c-full-pp-to-literal 1 0% c-parse-ps-state-below 1 0%
          • #<compiled 0x157c966223ed> 1 0% c-after-change-mark-abnormal-strings 1 0%
        • run-hooks 3 0%
        • magit-auto-revert-mode-enable-in-buffers 3 0%
        • magit-turn-on-auto-revert-mode-if-desired 3 0%
        • magit-toplevel 1 0% - magit-rev-parse-safe 1 0%
          • apply 1 0%
          • magit-git-str 1 0%
          • #<compiled 0x157c96f44555> 1 0% kill-buffer 1 0%
        • auto-revert-mode 1 0% - auto-revert-buffers 1 0%
          • apply 1 0%
          • auto-revert-buffers--buffer-list-filter 1 0%
          • #<compiled 0x157c965e45a5> 1 0%
          • auto-revert-notify-add-watch 1 0% - maphash 1 0%
            • #<compiled 0x157c990e1ff1> 1 0% file-notify--watch-absolute-filename 1 0%
        • magit-file-tracked-p 1 0% - magit-git-success 1 0%
          • magit-git-exit-code 1 0%
          • apply 1 0%
          • magit-process-file 1 0%
          • apply 1 0% process-file 1 0% - run-hooks 6 0%
        • projectile-find-file-hook-function 4 0%
        • projectile-track-known-projects-find-file-hook 2 0%
        • projectile-add-known-project 1 0%
        • projectile-merge-known-projects 1 0% projectile-save-known-projects 1 0%
        • projectile-project-p 1 0%
        • projectile-project-root 1 0% - cl-some 1 0%
          • #<compiled 0x157c9757ead5> 1 0%
          • file-truename 1 0% file-truename 1 0%
        • projectile-cache-files-find-file-hook 1 0%
        • projectile-project-p 1 0%
        • projectile-project-root 1 0% - cl-some 1 0%
          • #<compiled 0x157c9837e059> 1 0%
          • file-truename 1 0%
          • file-truename 1 0%
          • file-truename 1 0% file-truename 1 0%
        • projectile-update-mode-line 1 0%
        • projectile-default-mode-line 1 0%
        • projectile-project-name 1 0% - projectile-project-root 1 0%
          • cl-some 1 0%
          • #<compiled 0x157c9757ea21> 1 0%
          • file-truename 1 0%
          • file-truename 1 0% file-truename 1 0%
        • vc-refresh-state 2 0%
        • vc-backend 2 0%
        • vc-registered 2 0%
        • mapc 2 0% - #<compiled 0x157c9952b349> 2 0%
          • vc-call-backend 2 0%
          • apply 2 0%
          • vc-bzr-registered 2 0%
          • if 2 0% - vc-find-root 2 0% locate-dominating-file 2 0%
      • file-truename 1 0%
      • file-truename 1 0% - file-truename 1 0%
        • file-truename 1 0%
        • file-truename 1 0%
        • file-truename 1 0%
        • file-truename 1 0% - file-truename 1 0%
          • file-truename 1 0%
          • file-truename 1 0%
          • file-truename 1 0%
          • file-truename 1 0% file-truename 1 0%
    • #<compiled 0x157c995475d9> 3 0%
    • xref-backend-definitions 3 0% - apply 3 0%
      • #<compiled 0x157c965931c9> 3 0%
      • lsp--locations-to-xref-items 2 0%
      • seq-map 2 0%
      • apply 2 0% - #<compiled 0x157c95f48261> 2 0%
        • mapcar 2 0% #<compiled 0x157c9656c861> 2 0% lsp-request 1 0%
  • er/expand-region 38 0% - er--expand-region-1 38 0%
    • #<compiled 0x157c96b97c29> 38 0%
    • er/mark-defun 36 0%
    • end-of-defun 28 0%
    • beginning-of-defun-raw 17 0% - c-beginning-of-defun 17 0%
      • c-parse-state 9 0%
      • c-parse-state-1 9 0% c-append-to-state-cache 5 0% c-remove-stale-state-cache 3 0%
      • c-parse-state-get-strategy 1 0%
      • c-get-fallback-scan-pos 1 0% - beginning-of-defun 1 0% beginning-of-defun-raw 1 0%
      • c-widen-to-enclosing-decl-scope 7 0% forward-list 6 0%
      • c-most-enclosing-decl-block 1 0%
      • c-looking-at-decl-block 1 0%
      • c-syntactic-skip-backward 1 0% - c-literal-start 1 0%
        • c-semi-pp-to-literal 1 0%
        • #<compiled 0x157c965f1951> 1 0% c-clear-string-fences 1 0% c-beginning-of-decl-1 1 0%
    • c-end-of-defun 11 0% - c-parse-state 8 0%
      • c-parse-state-1 8 0% c-append-to-state-cache 4 0% c-remove-stale-state-cache 3 0%
      • c-parse-state-get-strategy 1 0%
      • c-get-fallback-scan-pos 1 0%
      • beginning-of-defun 1 0% beginning-of-defun-raw 1 0% - c-widen-to-enclosing-decl-scope 3 0% forward-list 3 0%
    • beginning-of-defun 8 0%
    • beginning-of-defun-raw 8 0% - c-beginning-of-defun 8 0%
      • c-parse-state 5 0%
      • c-parse-state-1 5 0% c-append-to-state-cache 3 0% c-remove-stale-state-cache 2 0%
      • c-widen-to-enclosing-decl-scope 2 0% forward-list 2 0%
      • c-beginning-of-decl-1 1 0% c-beginning-of-statement-1 1 0%
    • er/mark-email 2 0%
    • end-of-thing 2 0%
    • bounds-of-thing-at-point 2 0% - #<compiled 0x157c96446f29> 2 0% thing-at-point-looking-at 2 0%
  • scroll-up-command 36 0% - scroll-up 1 0%
    • eval 1 0%
    • mapconcat 1 0% lsp--workspace-print 1 0%
  • avy-goto-word-1 28 0% - avy-jump 28 0%
    • avy-process 28 0%
    • avy--process-1 28 0%
    • avy-read 28 0%
    • read-key 27 0% - read-key-sequence-vector 23 0%
      • timer-event-handler 2 0%
      • apply 2 0% #<compiled 0x1febfaff3a21> 2 0%
    • avy--overlay-at-full 1 0% - avy--update-offset-and-str 1 0%
      • cl-find-if 1 0%
      • apply 1 0% cl-find 1 0%
  • undo 27 0% - undo-more 26 0%
    • primitive-undo 25 0%
    • c-before-change 10 0%
    • mapc 4 0%
    • #<compiled 0x157c96625f05> 4 0% - c-before-change-check-<>-operators 4 0% c-syntactic-re-search-forward 2 0% c-determine-+ve-limit 1 0% c-restore-string-fences 3 0%
    • c-unfind-enclosing-token 1 0% c-beginning-of-current-token 1 0%
    • #<compiled 0x157c96625ef9> 1 0% c-clear-string-fences 1 0%
    • c-invalidate-state-cache 1 0% c-invalidate-state-cache-1 1 0%
    • c-after-change 6 0%
    • mapc 3 0%
    • #<compiled 0x157c966260dd> 3 0% - c-change-expand-fl-region 1 0%
      • c-fl-decl-start 1 0% c-literal-start 1 0% - c-restore-<>-properties 1 0%
      • c-backward-sws 1 0%
      • apply 1 0%
      • #<compiled 0x157c96aaa11d> 1 0% apply 1 0%
    • #<compiled 0x157c96625f45> 2 0% c-clear-string-fences 2 0% c-restore-string-fences 1 0%
    • lsp-on-change 4 0%
    • mapc 2 0%
    • #<compiled 0x157c9710f73d> 2 0% - lsp--text-document-content-change-event 1 0%
      • lsp--point-to-position 1 0%
      • lsp--cur-position 1 0%
      • lsp--cur-line 1 0% line-number-at-pos 1 0% - lsp-notify 1 0%
      • lsp--send-notification 1 0%
      • mapcar 1 0% #<compiled 0x157c99a3506d> 1 0%
    • lsp--after-change 1 0% lsp--semantic-tokens-refresh-if-enabled 1 0%
    • lsp--remove-overlays 1 0% remove-overlays 1 0%
    • put-text-property 2 0%
    • lsp-on-change 1 0%
    • mapc 1 0% - #<compiled 0x157c99a2b861> 1 0%
      • lsp-notify 1 0%
      • lsp--send-notification 1 0%
      • mapcar 1 0%
      • #<compiled 0x157c99a2b8e5> 1 0% lsp--make-message 1 0%
    • lsp-before-change 1 0%
    • lsp--point-to-position 1 0% - lsp--cur-position 1 0%
      • lsp--cur-line 1 0% line-number-at-pos 1 0%
    • flycheck-handle-change 2 0%
    • run-at-time 1 0% timer-relative-time 1 0%
    • jit-lock-after-change 1 0%
    • run-hook-with-args 1 0% font-lock-extend-jit-lock-region-after-change 1 0%
  • c-electric-backspace 21 0% - backward-delete-char-untabify 21 0%
    • delete-backward-char 21 0%
    • delete-char 17 0%
    • c-after-change 8 0%
    • mapc 4 0% - #<compiled 0x157c966260dd> 4 0%
      • c-change-expand-fl-region 4 0%
      • c-fl-decl-start 2 0%
      • c-parse-state 1 0%
      • c-parse-state-1 1 0% c-append-lower-brace-pair-to-state-cache 1 0%
      • c-cheap-inside-bracelist-p 1 0% c-backward-token-2 1 0%
      • c-fl-decl-end 2 0%
      • c-literal-start 1 0%
      • c-semi-pp-to-literal 1 0% c-semi-get-near-cache-entry 1 0%
      • c-forward-declarator 1 0%
      • c-backward-sws 1 0% - apply 1 0%
        • #<compiled 0x157c96aaa11d> 1 0%
        • apply 1 0% #<compiled 0x157c965f1161> 1 0%
    • #<compiled 0x157c96625f45> 4 0% c-clear-string-fences 4 0%
    • lsp-on-change 5 0%
    • mapc 4 0% - #<compiled 0x157c9cad6ab5> 4 0%
      • lsp--text-document-content-change-event 2 0%
      • lsp--point-to-position 2 0%
      • lsp--cur-position 2 0%
      • lsp--cur-line 2 0% line-number-at-pos 2 0% lsp--workspace-sync-method 1 0%
      • lsp-notify 1 0%
      • lsp--send-notification 1 0%
      • mapcar 1 0%
      • #<compiled 0x157c96af16e1> 1 0% lsp--send-no-wait 1 0%
    • run-with-idle-timer 1 0% - timer-activate-when-idle 1 0% timer--activate 1 0%
    • lsp-before-change 2 0%
    • lsp--point-to-position 2 0% - lsp--cur-position 2 0%
      • lsp--cur-line 2 0% line-number-at-pos 2 0%
    • c-before-change 1 0%
    • #<compiled 0x157c96625ef9> 1 0% c-clear-string-fences 1 0%
    • #<compiled 0x1febfb0beb19> 3 0%
    • lsp-before-change 1 0%
    • lsp--point-to-position 1 0% - lsp--cur-position 1 0%
      • lsp--cur-line 1 0% line-number-at-pos 1 0%
    • c-before-change 1 0%
    • #<compiled 0x157c96625ef9> 1 0% c-clear-string-fences 1 0%
    • lsp-on-change 1 0%
    • mapc 1 0% - #<compiled 0x157c99e0749d> 1 0%
      • lsp--text-document-content-change-event 1 0%
      • lsp--point-to-position 1 0%
      • lsp--cur-position 1 0%
      • lsp--cur-line 1 0% line-number-at-pos 1 0%
  • c-electric-semi&comma 18 0% - self-insert-command 8 0%
    • c-before-change 4 0% c-restore-string-fences 2 0%
    • #<compiled 0x157c96625ef9> 2 0% c-clear-string-fences 2 0%
    • c-after-change 1 0%
    • mapc 1 0%
    • #<compiled 0x157c966260dd> 1 0% c-after-change-mark-abnormal-strings 1 0%
    • lsp-before-change 1 0%
    • lsp--point-to-position 1 0%
    • lsp--cur-position 1 0%
    • lsp--cur-line 1 0% line-number-at-pos 1 0% - c-indent-line 7 0%
    • c-guess-basic-syntax 7 0%
    • c-looking-at-decl-block 3 0%
    • c-syntactic-skip-backward 3 0%
    • c-literal-start 3 0% - c-semi-pp-to-literal 3 0% c-restore-string-fences 1 0%
    • c-beginning-of-statement-1 2 0%
    • c-beginning-of-macro 1 0%
    • apply 1 0% - #<compiled 0x157c96aaa1e5> 1 0%
      • apply 1 0% #<compiled 0x157c965ece2d> 1 0%
    • c-inside-bracelist-p 2 0% c-looking-at-inexpr-block 1 0%
    • c-looking-at-or-maybe-in-bracelist 1 0%
    • c-backward-sws 1 0% - apply 1 0%
      • #<compiled 0x157c96aaa11d> 1 0%
      • apply 1 0% #<compiled 0x157c965f1161> 1 0% - c-parse-state 1 0%
    • c-parse-state-1 1 0% c-parse-state-get-strategy 1 0% - c--call-post-self-insert-hook-more-safely-1 1 0%
    • run-hooks 1 0%
    • #<compiled 0x157c9926c4f1> 1 0%
    • lsp--on-type-formatting 1 0%
    • lsp--cur-position 1 0% - lsp--cur-line 1 0% line-number-at-pos 1 0%
  • file-notify-handle-event 10 0% - file-notify--callback-inotify 10 0%
    • file-notify--handle-event 10 0%
    • file-notify--call-handler 8 0%
    • #<compiled 0x157c9899ec09> 7 0%
    • lsp--folder-watch-callback 7 0% - #<compiled 0x157c97e683c9> 6 0%
      • apply 6 0%
      • lsp--file-process-event 6 0%
      • seq-do 6 0%
      • mapc 6 0% - #<compiled 0x157c98b38b4d> 5 0%
        • -any? 5 0%
        • #<compiled 0x157c98b38b8d> 5 0%
        • seq-find 5 0%
        • seq-do 5 0% - mapc 5 0%
          • #<compiled 0x157c98b38be5> 5 0%
          • #<compiled 0x157c98b38bcd> 5 0%
          • -any? 5 0% #<compiled 0x157c98b38c39> 5 0% file-notify--expand-file-name 1 0%
  • save-buffer 10 0% - basic-save-buffer 10 0%
    • basic-save-buffer-1 6 0%
    • basic-save-buffer-2 6 0%
    • write-region 2 0%
    • select-safe-coding-system 1 0% find-auto-coding 1 0%
    • run-hooks 3 0%
    • lsp-on-save 3 0%
    • lsp-notify 3 0%
    • lsp--send-notification 3 0% - mapcar 3 0%
      • #<compiled 0x157c9bcebe85> 3 0% lsp--send-no-wait 2 0% lsp--make-message 1 0%
    • vc-after-save 1 0% vc-file-getprop 1 0%
  • company-select-next-or-abort 7 0% - company-select-next 7 0%
    • company-set-selection 7 0%
    • company-call-frontends 7 0%
    • company-pseudo-tooltip-unless-just-one-frontend 7 0%
    • company-pseudo-tooltip-frontend 7 0% - apply 7 0%
      • #<compiled 0x157c96461361> 7 0%
      • company-pseudo-tooltip-edit 7 0%
      • apply 4 0%
      • company--replacement-string 4 0% - company-modify-line 4 0%
        • company-safe-substring 3 0%
        • #<compiled 0x157c96d773e1> 2 0%
        • kill-buffer 2 0% run-hooks 2 0%
      • company--create-lines 3 0% company-fill-propertize 2 0% company--window-width 1 0%
  • c-indent-line-or-region 3 0% - c-indent-command 3 0%
    • #<compiled 0x1febfafce603> 3 0%
    • c-indent-line 3 0%
    • c-guess-basic-syntax 2 0%
    • c-looking-at-decl-block 1 0% - c-syntactic-skip-backward 1 0%
      • c-literal-start 1 0% c-semi-pp-to-literal 1 0% c-beginning-of-statement-1 1 0%
    • c-shift-line-indentation 1 0%
    • c-after-change 1 0% - mapc 1 0%
      • #<compiled 0x157c966260dd> 1 0%
      • c-change-expand-fl-region 1 0%
      • c-fl-decl-start 1 0%
      • c-cheap-inside-bracelist-p 1 0% - c-backward-token-2 1 0%
        • c-backward-sws 1 0%
        • apply 1 0%
        • #<compiled 0x157c96aaa11d> 1 0%
        • apply 1 0% #<compiled 0x157c965f1161> 1 0%
  • kill-line 1 0% - kill-region 1 0%
    • kill-new 1 0%
    • gui-select-text 1 0%
    • gui-set-selection 1 0%
    • gui-backend-set-selection 1 0% - apply 1 0% #<compiled 0x1febfafe3c5d> 1 0%
  • move-end-of-line 1 0% - line-move 1 0% line-move-1 1 0%
  • byte-code 66 0%
  • read-buffer-to-switch 55 0% - apply 55 0%
    • helm-mode--read-buffer-to-switch 55 0%
    • read-buffer 55 0%
    • #<compiled 0x157c9bc7c9a9> 55 0%
    • apply 55 0% - helm--generic-read-buffer 55 0%
      • helm--completing-read-default 55 0%
      • helm-completing-read-default-handler 55 0%
      • helm-completing-read-default-1 55 0%
      • helm-comp-read 55 0% - helm 52 0%
        • apply 52 0%
        • helm 52 0%
        • apply 52 0%
        • helm-internal 52 0% - helm-read-from-minibuffer 42 0%
          • read-from-minibuffer 32 0%
          • timer-event-handler 7 0%
          • apply 6 0%
          • #<compiled 0x157c966eadb9> 5 0% - helm-check-minibuffer-input 5 0%
            • helm-check-new-input 5 0%
            • helm-update 5 0%
            • #<compiled 0x157c9a098365> 4 0% helm-display-mode-line 4 0%
            • helm-render-source 1 0% helm-insert-match 1 0% #<compiled 0x1febfaff3a21> 1 0% cancel-timer-internal 1 0%
          • minibuffer-inactive-mode 2 0%
          • run-mode-hooks 1 0%
          • run-hooks 1 0% global-company-mode-enable-in-buffers 1 0%
          • kill-all-local-variables 1 0%
          • global-font-lock-mode-cmhh 1 0% add-hook 1 0%
          • redisplay_internal (C function) 1 0%
          • eval 1 0% flycheck-mode-line-status-text 1 0%
          • command-execute 1 0%
          • call-interactively 1 0%
          • funcall-interactively 1 0% - helm-next-line 1 0%
            • helm--next-or-previous-line 1 0%
            • helm-move-selection-common 1 0% helm-display-mode-line 1 0%
          • helm-update 4 0%
          • helm--collect-matches 3 0%
          • helm-compute-matches 3 0%
          • helm-process-filtered-candidate-transformer 2 0% - helm-apply-functions-from-source 2 0%
            • apply 2 0%
            • helm-fuzzy-highlight-matches 1 0% helm-flx-fuzzy-highlight-match 1 0%
            • #<lambda 0x1ce5b844138907e0> 1 0%
            • if 1 0% cl-loop 1 0%
          • helm-get-cached-candidates 1 0% - helm-get-candidates 1 0%
            • helm-interpret-value 1 0%
            • helm-apply-functions-from-source 1 0%
            • apply 1 0% #<compiled 0x157c98b4fb8d> 1 0%
          • #<compiled 0x157c9b90ae09> 1 0% helm-display-mode-line 1 0% - helm-display-buffer 4 0%
          • helm-default-display-buffer 4 0%
          • display-buffer 4 0%
          • display-buffer--maybe-pop-up-frame-or-window 4 0%
          • display-buffer--maybe-pop-up-window 4 0% - display-buffer-pop-up-window 4 0% window--maybe-raise-frame 4 0% - #<compiled 0x157c966e8485> 4 0%
          • helm-cleanup 4 0%
          • helm-frame-or-window-configuration 4 0% select-frame-set-input-focus 4 0% - helm-initialize 2 0%
          • helm-initial-setup 2 0%
          • helm-compute-attr-in-sources 1 0%
          • helm-apply-functions-from-source 1 0%
          • apply 1 0% #<compiled 0x157c9b842805> 1 0%
          • helm-create-helm-buffer 1 0%
          • kill-all-local-variables 1 0%
          • global-eldoc-mode-cmhh 1 0% - add-hook 1 0% sort 1 0% - helm-make-source 2 0%
        • helm--setup-source 2 0%
        • apply 2 0%
        • #<compiled 0x157c9674aabd> 2 0%
        • apply 2 0% - #<compiled 0x157c9670093d> 2 0% helm-source--persistent-help-string 2 0%
  • read-char 9 0% - timer-event-handler 2 0%
    • apply 2 0% #<compiled 0x1febfaff3a21> 1 0%
    • auto-revert-buffers 1 0%
    • apply 1 0%
    • auto-revert-buffers--buffer-list-filter 1 0% - #<compiled 0x157c965e45a5> 1 0% mapcar 1 0%
  • xref--read-identifier 1 0% - xref-backend-identifier-at-point 1 0%
    • apply 1 0%
    • #<compiled 0x157c9659233d> 1 0%
    • thing-at-point 1 0%
    • bounds-of-thing-at-point 1 0% - #<compiled 0x157c97efe329> 1 0%
      • forward-thing 1 0% forward-symbol 1 0%
  • timer-event-handler 3540 28%
  • #<compiled 0x157c971fb7a1> 1786 14%
  • ... 1408 11%
  • redisplay_internal (C function) 1301 10%
  • company-post-command 533 4%
  • eldoc-pre-command-refresh-echo-area 21 0%
  • flycheck-perform-deferred-syntax-check 7 0%
  • which-key--hide-popup 5 0%
  • internal-echo-keystrokes-prefix 5 0%
  • lsp--post-command 5 0%
  • lsp-ui-sideline 5 0%
  • jit-lock--antiblink-post-command 4 0%
  • internal-timer-start-idle 3 0%
  • lsp-signature 2 0% undefined 2 0%
  • flycheck-error-list-update-source 2 0% yas--post-command-handler 1 0% undo-auto--add-boundary 1 0% #<compiled 0x157c9cc6e161> 1 0%
  • #<compiled 0x157c96b808ed> 1 0%
  • flycheck-maybe-display-error-at-point-soon 1 0% eldoc-schedule-timer 1 0%

huangfeiyu avatar Jul 22 '22 09:07 huangfeiyu

That perf report is practically useless. You have to isolate the slow behavior and expand the nodes that take time. You have expanded only the node that is related to you doing M-x profiler-stop/M-x profiler-stop which typically you should bind to something to avoid including the wait time to select command in the perf report.

yyoncho avatar Jul 22 '22 09:07 yyoncho

+ timer-event-handler                                            3540  28%
+ #<compiled 0x157c971fb7a1>                                     1786  14%
+ ...                                                            1408  11%
+ redisplay_internal (C function)                                1301  10%
+ company-post-command                                            533   4%

yyoncho avatar Jul 22 '22 09:07 yyoncho

I am sorry, @yyoncho . I'll try do it again. Not every completion is slow, it is fine sometimes, it is extremely slow another sometimes. So I am not sure if the next completion is slow or not, so I can't only include one or fewer operation to reproduce it and include it in a report. Anyway now I know how to generate a report, next time when I experience continually slow, I can generate a report.

huangfeiyu avatar Jul 22 '22 10:07 huangfeiyu

Hi @yyoncho Here's another profiler report, please see if it help or not. Thanks

  • ... 417 70%
  • company--perform 417 70%
  • company--begin-new 417 70%
  • company-calculate-candidates 417 70% - company--fetch-candidates 417 70%
    • company-call-backend-raw 417 70%
    • apply 417 70%
    • company-capf 417 70%
    • company-capf--candidates 417 70% - completion-all-completions 417 70%
      • completion--nth-completion 417 70%
      • completion--some 417 70%
      • #<compiled 0x158279067569> 417 70% Automatic GC 0 0%
  • command-execute 122 20%
  • call-interactively 122 20%
  • funcall-interactively 122 20%
  • helm-M-x 109 18% - helm-M-x-read-extended-command 109 18%
    • helm 109 18%
    • apply 109 18%
    • helm 109 18%
    • apply 109 18% - helm-internal 109 18%
      • helm-read-from-minibuffer 104 17%
      • read-from-minibuffer 93 15%
      • timer-event-handler 56 9%
      • apply 55 9% - #<compiled 0x158276f20aa1> 50 8%
        • helm-check-minibuffer-input 49 8%
        • helm-check-new-input 49 8%
        • helm-update 49 8%
        • helm--collect-matches 47 7% - helm-compute-matches 47 7%
          • helm-get-cached-candidates 32 5%
          • helm-get-candidates 32 5%
          • helm-interpret-value 31 5%
          • helm-apply-functions-from-source 31 5% - apply 31 5%
            • helm-candidates-in-buffer 31 5%
            • helm-candidates-in-buffer-1 31 5%
            • helm-search-from-candidate-buffer 31 5%
            • helm--search-from-candidate-buffer-1 31 5% - #<compiled 0x158277cfe289> 31 5% helm-fuzzy-search 31 5%
          • helm-process-filtered-candidate-transformer 15 2%
          • helm-apply-functions-from-source 15 2%
          • apply 15 2%
          • helm-fuzzy-highlight-matches 11 1% - helm-flx-fuzzy-highlight-match 11 1%
            • helm-flx-fuzzy-highligher 10 1%
            • #<compiled 0x1582777e2d45> 10 1%
            • kill-buffer 4 0% run-hooks 3 0%
            • replace-buffer-in-windows 1 0% - unrecord-window-buffer 1 0% assq-delete-all 1 0%
          • helm-M-x-transformer-no-sort 4 0% helm-M-x-transformer-1 2 0%
        • helm-render-source 1 0% helm-insert-match 1 0%
        • internal--before-save-selected-window 1 0%
        • mapcar 1 0% #<compiled 0x1fdf52f3908d> 1 0% - #<compiled 0x1fdf52f8ae21> 4 0% jit-lock-context-fontify 1 0% - auto-revert-buffers 1 0%
        • apply 1 0%
        • auto-revert-buffers--buffer-list-filter 1 0%
        • #<compiled 0x158276e1a7d1> 1 0% mapcar 1 0%
      • timer-activate-when-idle 1 0% - timer--activate 1 0% timer--time-less-p 1 0%
      • #<compiled 0x1582779dcd41> 6 1%
      • #<compiled 0x15827745d415> 2 0% - kill-buffer 1 0% run-hooks 1 0%
      • mapc 2 0% - #<compiled 0x15827d779df5> 2 0%
        • lsp--parser-on-message 2 0%
        • lsp--on-notification 1 0%
        • lsp--on-diagnostics 1 0%
        • lsp--uri-to-path 1 0% - lsp--uri-to-path-1 1 0%
          • url-generic-parse-url 1 0% #<compiled 0x158277f656c5> 1 0% lsp--get-message-type 1 0% generate-new-buffer 1 0%
      • frame-windows-min-size 1 0%
      • window-min-size 1 0% - window--min-size-1 1 0%
        • window--min-size-1 1 0% window-min-pixel-width 1 0%
      • helm-update 2 0%
      • helm--collect-matches 2 0%
      • helm-compute-matches 2 0% - helm-process-filtered-candidate-transformer 2 0%
        • helm-apply-functions-from-source 2 0%
        • apply 2 0% helm-M-x-transformer-no-sort 1 0%
        • helm-fuzzy-highlight-matches 1 0%
        • helm-flx-fuzzy-highlight-match 1 0% - helm-flx-fuzzy-highligher 1 0%
          • #<compiled 0x158278892b85> 1 0%
          • kill-buffer 1 0%
          • replace-buffer-in-windows 1 0% unrecord-window-buffer 1 0%
      • helm-initialize 4 0%
      • helm-initial-setup 4 0%
      • helm-compute-attr-in-sources 4 0%
      • helm-apply-functions-from-source 4 0% - apply 4 0%
        • #<compiled 0x158277b37101> 4 0%
        • #<compiled 0x15827cabc435> 3 0% helm-comp-read-get-candidates 3 0%
        • helm-init-candidates-in-buffer 1 0% mapconcat 1 0%
      • #<compiled 0x158276f1e18d> 1 0%
      • helm-cleanup 1 0%
      • helm-frame-or-window-configuration 1 0% select-frame-set-input-focus 1 0%
  • company-complete-selection 6 1% - company-finish 6 1%
    • company-cancel 4 0%
    • company-call-backend 4 0%
    • company--force-sync 4 0%
    • apply 4 0% - company-call-backend-raw 4 0%
      • apply 4 0%
      • company-capf 4 0%
      • company--capf-post-completion 4 0%
      • #<compiled 0x15827906750d> 4 0% - apply 4 0%
        • lsp-completion--exit-fn 4 0%
        • lsp--apply-text-edit 2 0%
        • c-before-change 1 0%
        • #<compiled 0x158276e5b851> 1 0% c-clear-string-fences 1 0%
        • c-after-change 1 0%
        • #<compiled 0x158276e5ba05> 1 0% c-clear-string-fences 1 0%
        • apply 1 0%
        • delete-region 1 0%
        • lsp-on-change 1 0% - mapc 1 0%
          • #<compiled 0x15827777a5cd> 1 0%
          • lsp--text-document-content-change-event 1 0%
          • lsp--point-to-position 1 0%
          • lsp--cur-position 1 0% - lsp--cur-line 1 0% line-number-at-pos 1 0%
        • lsp--expand-snippet 1 0%
        • yas-expand-snippet 1 0%
        • yas--snippet-create 1 0% - eval 1 0%
          • let 1 0%
          • funcall 1 0%
          • #<compiled 0x158276cd5035> 1 0%
          • run-hook-with-args 1 0% - c-before-change 1 0%
            • #<compiled 0x158276e5b851> 1 0% c-clear-string-fences 1 0%
    • company--insert-candidate 2 0%
    • c-before-change 1 0%
    • #<compiled 0x158276e5b851> 1 0% c-clear-string-fences 1 0%
    • c-after-change 1 0%
    • mapc 1 0%
    • #<compiled 0x158276e5ba31> 1 0% - c-change-expand-fl-region 1 0%
      • c-fl-decl-start 1 0%
      • c-determine-limit 1 0%
      • c-backward-sws 1 0%
      • apply 1 0% - #<compiled 0x1582772df0c5> 1 0% apply 1 0%
  • self-insert-command 4 0% - c-after-change 2 0%
    • mapc 2 0%
    • #<compiled 0x158276e5ba31> 2 0%
    • c-change-expand-fl-region 1 0%
    • c-fl-decl-start 1 0% - c-determine-limit 1 0%
      • c-backward-sws 1 0%
      • apply 1 0%
      • #<compiled 0x1582772df0c5> 1 0% apply 1 0% - c-before-change 2 0% c-restore-string-fences 1 0%
    • #<compiled 0x158276e5b851> 1 0% c-clear-string-fences 1 0%
  • newline 3 0% - self-insert-command 3 0%
    • electric-indent-post-self-insert-function 2 0%
    • indent-according-to-mode 2 0%
    • c-indent-line 2 0%
    • c-shift-line-indentation 2 0% - c-before-change 1 0% c-restore-string-fences 1 0% - c-after-change 1 0%
      • #<compiled 0x158276e5ba05> 1 0% c-clear-string-fences 1 0%
    • c-before-change 1 0%
    • #<compiled 0x158276e5b851> 1 0% c-clear-string-fences 1 0%
  • redisplay_internal (C function) 29 4%
  • timer-event-handler 15 2%
  • apply 15 2%
  • company-idle-begin 8 1%
  • company-post-command 8 1% - company-call-frontends 8 1%
    • company-pseudo-tooltip-unless-just-one-frontend 8 1%
    • company-pseudo-tooltip-frontend 8 1%
    • apply 8 1%
    • #<compiled 0x158276c963ad> 8 1% - company-pseudo-tooltip-show-at-point 8 1%
      • company-pseudo-tooltip-show 7 1%
      • move-to-window-line 2 0%
      • jit-lock-function 2 0%
      • jit-lock-fontify-now 2 0% - jit-lock--run-functions 2 0%
        • run-hook-wrapped 2 0%
        • #<compiled 0x15827c7efd81> 2 0%
        • font-lock-fontify-region 2 0%
        • c-font-lock-fontify-region 2 0% - font-lock-default-fontify-region 2 0%
          • font-lock-fontify-keywords-region 2 0%
          • c-font-lock-declarations 2 0%
          • c-find-decl-spots 2 0%
          • #<compiled 0x158276e0f219> 1 0% - c-forward-decl-or-cast-1 1 0%
            • c-forward-type 1 0% c-forward-name 1 0%
      • company--pseudo-tooltip-height 1 0%
      • company--row 1 0% company--col-row 1 0%
      • company--create-lines 1 0%
      • company-fill-propertize 1 0%
      • company-safe-substring 1 0% #<compiled 0x15827bbcee59> 1 0% company--col-row 1 0%
  • #<compiled 0x1fdf52f8ae21> 3 0% jit-lock-context-fontify 2 0%
  • lsp--on-idle 2 0%
  • run-hooks 2 0% - lsp-modeline--check-code-actions 2 0%
    • lsp--text-document-code-action-params 2 0%
    • lsp--region-to-range 1 0%
    • lsp--point-to-position 1 0%
    • lsp--cur-position 1 0% - lsp--cur-line 1 0% line-number-at-pos 1 0%
    • lsp-cur-line-diagnostics 1 0%
    • lsp--region-or-line 1 0%
    • lsp--region-to-range 1 0% - lsp--point-to-position 1 0%
      • lsp--cur-position 1 0%
      • lsp--cur-line 1 0% line-number-at-pos 1 0% #<compiled 0x15827bd2a3ed> 1 0%
  • auto-revert-buffers 1 0%
  • apply 1 0% auto-revert-buffers--buffer-list-filter 1 0%
  • #<compiled 0x1582779dcd41> 9 1%

huangfeiyu avatar Aug 03 '22 07:08 huangfeiyu

Hi @yyoncho just a reminder! Will you please check my last performance report when you get time? Thanks!

huangfeiyu avatar Aug 17 '22 01:08 huangfeiyu

can you try setting lsp-java-completion-max-results to 10?

yyoncho avatar Aug 17 '22 09:08 yyoncho

It appears fixed the slowness issue. Thank you @yyoncho !

huangfeiyu avatar Aug 31 '22 08:08 huangfeiyu