haskell-mode icon indicating copy to clipboard operation
haskell-mode copied to clipboard

Slow response, loading spinner while editing

Open mbutz opened this issue 3 years ago • 1 comments
trafficstars

Hi,

while editing in Haskell mode (Tidal Cycles files) Emacs quite frequently pauses, shows a spinner and I have to Ctrl-G to be able to go on. It happens mostly while deleting single characters. I can track it down to haskell-lexeme-looking-at-token

[details="Output of Emacs profiler"]

- command-execute                                         449,499,671  76%
 - apply                                                  449,499,671  76%
  - ad-Advice-command-execute                             449,499,671  76%
   - #<compiled 0x1fe0b2d305eb>                           449,499,671  76%
    - call-interactively                                  449,480,923  76%
     - funcall-interactively                              449,430,595  76%
      - self-insert-command                               382,418,053  65%
       - symbol-overlay-refresh                           381,427,745  65%
        - looking-at                                      381,412,589  65%
         - internal--syntax-propertize                    381,412,589  65%
          - syntax-propertize                             381,408,453  65%
           - haskell-syntax-propertize                    381,408,453  65%
            - haskell-lexeme-looking-at-token             381,408,453  65%
             - haskell-lexeme-looking-at-quasi-quote-literal   340,638,061  58%
              - rx-to-string                              325,985,069  55%
               - rx--translate                            246,061,233  41%
                - rx--translate-form                      246,061,233  41%
                 - rx--translate-seq                      246,061,233  41%
                  + mapcar                                125,177,745  21%
                  + rx--sequence                           84,254,016  14%
               + rx--atomic-regexp                         54,976,548   9%
                 apply                                     24,946,808   4%
               haskell-lexeme-looking-at-qidsym                 6,144   0%
               haskell-lexeme-looking-at-char-literal           2,048   0%
               haskell-lexeme-looking-at-string-literal         2,048   0%
             + match-string-no-properties                       1,184   0%
       + electric-pair-post-self-insert-function              987,140   0%
      + counsel-M-x                                        55,657,316   9%
      + all-the-icons-ivy-rich-kill-buffer                  5,692,074   0%
      + previous-line                                       2,177,076   0%
      + next-line                                           1,352,840   0%
      + hungry-delete-backward                              1,034,512   0%
      + handle-focus-out                                      386,236   0%
      + handle-focus-in                                       368,284   0%
      + smart-region                                          167,336   0%
        right-char                                             70,592   0%
      + profiler-report-toggle-entry                           62,890   0%
        left-char                                              25,760   0%
      + mouse-drag-region                                       8,408   0%
      + kill-line                                               4,424   0%
      + left-word                                               2,048   0%
        delete-window                                           1,690   0%
     + byte-code                                               50,328   0%
+ timer-event-handler                                      52,973,797   9%
+ redisplay_internal (C function)                          42,000,655   7%
+ symbol-overlay-post-command                              38,110,756   6%
+ flyspell-post-command-hook                                1,356,718   0%
+ winner-save-old-configurations                              937,504   0%
+ gcmh-register-idle-gc                                       421,272   0%
  mouse-fixup-help-message                                    243,188   0%
+ jit-lock--antiblink-post-command                            132,249   0%
+ #<compiled 0xdf6539>                                         60,808   0%
+ #<compiled 0xe1e26d>                                         33,260   0%
+ yas-maybe-expand-abbrev-key-filter                           27,108   0%
+ gui-set-selection                                            19,976   0%
+ eldoc-schedule-timer                                         19,064   0%
+ tooltip-show-help                                            15,424   0%
+ company-post-command                                         10,416   0%
+ xselect-convert-to-targets                                    9,328   0%
+ blink-cursor-check                                            8,188   0%
  tooltip-hide                                                  7,248   0%
+ undo-auto--add-boundary                                       5,280   0%
+ prettify-symbols--post-command-hook                           5,280   0%
+ #<compiled 0x1fe0b2e2e41b>                                    2,328   0%
+ blink-cursor-end                                              2,112   0%
+ xselect-convert-to-string                                     1,252   0%
+ solaire-global-mode-check-buffers                             1,056   0%
+ projectile-rails-global-mode-check-buffers                    1,056   0%
+ global-hl-todo-mode-check-buffers                             1,056   0%
+ global-hungry-delete-mode-check-buffers                       1,056   0%
+ global-hl-line-highlight                                      1,056   0%
  mouse--down-1-maybe-follows-link                              1,056   0%
+ clear-transient-map                                           1,056   0%
+ global-eldoc-mode-check-buffers                               1,056   0%
+ global-tree-sitter-mode-check-buffers                         1,056   0%
+ global-flycheck-mode-check-buffers                            1,056   0%
+ global-company-mode-check-buffers                             1,056   0%
+ global-aggressive-indent-mode-check-buffers                   1,056   0%
+ deactivate-mark                                                 976   0%
+ mouse--click-1-maybe-follows-link                               448   0%
  ...                                                               0   0%

[/details]

I am using a Thinkpad Yoga 1. Gen, 16 MB RAM, Intel Core i7-6600U CPU @ 2.60GHz × 2 with Linux Mint 20.3 Cinnamon and Emacs 27.1.; tidal-mode is tidal-20210211.1531 and haskell-mode is haskell-mode-20210908.1543 from elpa - if that is some crucial information.

Please let me know if more information is necessary to maybe look into that.

I tried the solution from #1648 but this did not help.

I'd be grateful for any hints to make the mode work.

mbutz avatar Jan 08 '22 21:01 mbutz

this happens in combination with symbol-overlay, see also https://github.com/wolray/symbol-overlay/issues/75

ahihi avatar Sep 10 '23 17:09 ahihi