Subject: bug#46350: 28.0.50; touchpad-scrolling-eats-lots-of-cpu-samples

From: Andrey Orst <[email-masked]>
Date: Sat, 6 Feb 2021 21:34:29 +0300

On Sat, Feb 6, 2021 at 8:59 PM Eli Zaretskii <[email-masked]> 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%               - #<compiled -0x152f649d2893cb7b>
         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%                     #<compiled -0x4e6368f210a40dc>
           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%           #<compiled -0x1fc73df3077c5a73>
           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%      - #<compiled 0x4f9dac7e18824a>
           2   0%       - gui-backend-selection-exists-p
           2   0%        - apply
           2   0%           #<compiled -0x16887ad6f3ef152d>
           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%   - #<subr
F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_11>
          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%   - #<compiled 0x4f9dac7e18824a>
           1   0%    - gui-backend-selection-exists-p
           1   0%     - apply
           1   0%        #<compiled -0x16887ad6f3ef152d>
           1   0%  - jit-lock-function
           1   0%   - jit-lock-fontify-now
           1   0%    - jit-lock--run-functions
           1   0%     - #<compiled -0x152f64ab9864c87b>
           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% - #<compiled 0x1cf15f5a0be052d1>
           1   0%  - filter-buffer-substring
           1   0%   - buffer-substring--filter
           1   0%    - #<compiled 0x1f88987120b96adb>
           1   0%       apply

Also, I've attached a video of what I'm doing.

 VID_20210206_211819.tar.xz
<https://drive.google.com/file/d/19dsfdY_f30FKRTGJld28wuBcJB0T8LrT/view?usp=drive_web>

-- 
Best regards,
Andrey Listopadov