Subject: Re: bug#57813: Icon images are non-functional

From: Juri Linkov <[email-masked]>
Date: Thu, 15 Sep 2022 20:35:38 +0300

>> S-TAB is so slow that it takes several seconds on etc/NEWS.
>
> Please profile it and post the profile.  For me, S-TAB is
> instantaneous in NEWS, even though my Emacs is built without
> optimizations.  So I wonder what takes it several seconds in your
> case.

Maybe you didn't enable buttons?  With something like:

  (setq outline-minor-mode-use-buttons '(derived-mode . special-mode))

This is before optimization:

        1995  89% - command-execute
        1959  87%  - funcall-interactively
        1946  86%   - outline-cycle-buffer
        1379  61%    - outline-hide-sublevels
        1375  61%     - outline-flag-region
        1375  61%      - outline--fix-up-all-buttons
        1371  61%       - outline-map-region
        1371  61%        - #<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_27>
        1339  59%         - outline--cycle-state
          43   1%          + outline-end-of-subtree
          20   0%          + seq-filter
           4   0%            outline-back-to-heading
          20   0%         + outline--insert-close-button
           4   0%     + outline-map-region
         567  25%    - outline--fix-up-all-buttons
         567  25%     - outline-map-region
         563  25%      - #<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_27>
         511  22%       - outline--cycle-state
         260  11%        + outline-end-of-subtree
          20   0%        + seq-filter
           4   0%          outline-back-to-heading
          16   0%       + outline--insert-close-button

This is after optimization that removed 'outline--cycle-state':

         287  82% - command-execute
         229  65%  - funcall-interactively
         216  61%   - outline-cycle-buffer
         108  30%    - outline-hide-sublevels
         104  29%     - outline-flag-region
         104  29%      - outline--fix-up-all-buttons
         104  29%       - outline-map-region
          92  26%        - #<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_28>
          80  22%         - outline--insert-close-button
          64  18%          - outline--make-button-overlay
          56  16%           + icon-elements
           8   2%           + seq-find
          12   3%          + define-keymap
           4   1%     + outline-map-region
         108  30%    - outline--fix-up-all-buttons
         108  30%     - outline-map-region
         104  29%      - #<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_28>
          88  25%       - outline--insert-close-button
          60  17%        - outline--make-button-overlay
          60  17%         + icon-elements
          20   5%        + define-keymap