On Sat, Feb 6, 2021 at 8:59 PM Eli Zaretskii wrote: > I cannot reproduce this. Did you try "emacs -Q"? Yes, the behavior I've described happens to me in emacs -Q (and emacs -q) > Please load mwheel.el (NOT the .elc file!), and then profile the slow > scrolling again and show a fully-expanded profile. That might help us > understand what part of mwheel-scroll takes the lion's share of CPU > cycles. Here's whole report expanded (btw can't find if there's expand-all feature?): 11593 91% - command-execute 11549 91% - funcall-interactively 11542 91% - mwheel-scroll 11536 91% - let* 11420 90% - condition-case 11381 90% - unwind-protect 11377 90% - let 11373 90% - cond 11372 90% - condition-case 10868 86% - funcall 324 2% - scroll-down 263 2% - jit-lock-function 255 2% - jit-lock-fontify-now 235 1% - jit-lock--run-functions 233 1% - # 232 1% - font-lock-fontify-region 224 1% - font-lock-default-fontify-region 132 1% - font-lock-fontify-syntactically-region 110 0% syntax-ppss 10 0% - lisp-font-lock-syntactic-face-function 7 0% - lisp-string-in-doc-position-p 1 0% forward-sexp 2 0% - lisp-string-after-doc-keyword-p 2 0% - backward-sexp 2 0% forward-sexp 35 0% - font-lock-fontify-keywords-region 17 0% - lisp--el-match-keyword 2 0% - lisp--el-non-funcall-position-p 1 0% syntax-ppss 5 0% # 1 0% - let 1 0% - cond 1 0% eq 1 0% font-lock-prepend-text-property 1 0% lisp--match-confusable-symbol-character 6 0% font-lock-unfontify-region 24 0% - eval 18 0% - if 3 0% display-graphic-p 2 0% - unless 1 0% if 1 0% mode-line-eol-desc 502 3% - unwind-protect 502 3% - funcall 5 0% - scroll-down 4 0% - eval 4 0% if 4 0% - if 2 0% if 6 0% - message 4 0% - error-message-string 3 0% - substitute-command-keys 1 0% # 1 0% clear-minibuffer-message 57 0% - if 50 0% - progn 46 0% - setq 39 0% - run-with-timer 33 0% - run-at-time 4 0% - timer-set-time 1 0% timer--time-setter 1 0% timer-activate 3 0% * 2 0% if 3 0% - let 2 0% - while 1 0% - consp 1 0% - setq 1 0% car-safe 49 0% - mouse-wheel--get-scroll-window 48 0% - or 47 0% - catch 45 0% - let* 44 0% - if 39 0% progn 4 0% mwheel-event-window 1 0% - delq 1 0% - delq 1 0% delq 5 0% - eval-expression 5 0% progn 42 0% - byte-code 29 0% - read--expression 2 0% - redisplay_internal (C function) 2 0% - funcall 2 0% - # 2 0% - gui-backend-selection-exists-p 2 0% - apply 2 0% # 1 0% - frame-windows-min-size 1 0% window-min-size 976 7% - ... 976 7% Automatic GC 13 0% - timer-event-handler 13 0% - apply 13 0% - # 13 0% - eldoc-print-current-symbol-info 13 0% - eldoc--invoke-strategy 13 0% - eldoc-documentation-default 13 0% - elisp-eldoc-funcall 13 0% - elisp--fnsym-in-current-sexp 13 0% - elisp--beginning-of-sexp 13 0% - forward-sexp 4 0% - scan-sexps 4 0% syntax-ppss 11 0% - jit-lock--antiblink-post-command 11 0% syntax-ppss 5 0% - undo-auto--add-boundary 4 0% - undo-auto--boundaries 2 0% undo-auto--ensure-boundary 3 0% - mwheel-filter-click-events 2 0% - if 2 0% eq 3 0% internal-timer-start-idle 3 0% tooltip-hide 2 0% - redisplay_internal (C function) 1 0% - funcall 1 0% - # 1 0% - gui-backend-selection-exists-p 1 0% - apply 1 0% # 1 0% - jit-lock-function 1 0% - jit-lock-fontify-now 1 0% - jit-lock--run-functions 1 0% - # 1 0% - font-lock-fontify-region 1 0% - font-lock-default-fontify-region 1 0% - font-lock-fontify-syntactically-region 1 0% syntax-ppss 2 0% - # 1 0% - filter-buffer-substring 1 0% - buffer-substring--filter 1 0% - # 1 0% apply Also, I've attached a video of what I'm doing. VID_20210206_211819.tar.xz -- Best regards, Andrey Listopadov