Subject: Re: bug#24565: 25.1: info freezes on some elements

From: Nikolay Kudryavtsev <[email-masked]>
Date: Fri, 30 Sep 2016 13:50:39 +0300

Yes I thought it was font lookup too, but after doing some more testing 
- it does not look like it. Doing next-line or previous line triggers 
it, but page up or page down does not. So the freeze happens when the 
point crosses one of those symbols.

I did some profiling, so here's some data:

Test 1: as described before, but with profiler-start and profiler-report 
when we reach the end of buffer. In 24.5 profiler reports less than 50 
total samples. In 25.1 it reports at least 1900 cpu samples.

Test 2: as test 1, but with down arrow manually pressed every time and 
waiting for cursor to move to the next line. In Emacs 24.5 it takes 50 
seconds to reach the bottom of the buffer and again ~50 samples. But 
with 25.1 it took 2 minutes 34 seconds and at lest 3200 cpu samples.

Test 3: in test 1 I actually let the key go the moment Emacs freezes, 
because every new command adds to the freeze. Now let's do as before, 
but just hold down the down arrow for 30 seconds and see how much it 
takes to unfreeze. Emacs unfroze after 5 minutes and 35 seconds and 
reported ~20000 cpu samples.

Here's a profiler-report structure from test 1:
- command-execute 3664  95%
  - call-interactively 3664  95%
   - funcall-interactively 3615  94%
    - next-line 3614  94%
     - line-move 3614  94%
        line-move-visual 2054  53%
      - line-move-partial 517  13%
       + default-line-height 1   0%
      - window-inside-pixel-edges 3   0%
       - window-edges 3   0%
        - window-current-scroll-bars 3   0%
           frame-current-scroll-bars 3   0%
      - default-line-height 1   0%
         default-font-height 1   0%
    - execute-extended-command 1   0%
     - sit-for 1   0%
        redisplay 1   0%
   - byte-code 49   1%
    - read-extended-command 49   1%
     - completing-read 49   1%
      - completing-read-default 49   1%
       - read-from-minibuffer 45   1%
        - redisplay_internal (C function) 1   0%
         - tool-bar-make-keymap 1   0%
          - tool-bar-make-keymap-1 1   0%
           - mapcar 1   0%
            - #<compiled 0x10011609f>                                1   0%
             - eval 1   0%
              - find-image 1   0%
                 image-search-load-path 1   0%
- ... 157   4%

I guess my next task is profiling the с source, is there anything I 
should look into?

-- 
Best Regards,
Nikolay Kudryavtsev