emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Tooltips GC overhead


From: martin rudalics
Subject: Re: Tooltips GC overhead
Date: Thu, 30 Jul 2015 09:08:13 +0200

> I can't reproduce your problem on Fedora 21, configured with gcc 5.1.0
> -m32 and --without-imagemagick (ImageMagick breaks the build on my
> native x86-64 platform due to library incompatibilities) and running
> emacs -Q.  When I tried profiler-start with mem, then letting tooltips
> show over the modeline, then running profiler-report, I got the
> following, which seems benign.
>
> - command-execute                                             985,993  99%
>   - call-interactively                                         985,993  99%
>    - funcall-interactively                                     984,565  99%
>     - execute-extended-command                                 984,565  99%
>      - command-execute                                         949,171  96%
>       - call-interactively                                     949,171  96%
>        - funcall-interactively                                 949,163  96%
>         - profiler-report                                      943,516  95%
>          - profiler-report-memory                              943,516  95%
>             profiler-memory-profile                            943,516  95%
>         - profiler-start                                         5,647   0%
>            message                                               1,535   0%

I was able to reproduce something comparable here on Windows (in a
--with-wide-int build):

- command-execute                                           1,572,084  96%
 - call-interactively                                       1,572,084  96%
  - funcall-interactively                                   1,529,090  94%
   - execute-extended-command                               1,246,749  76%
    - command-execute                                       1,071,389  66%
     - call-interactively                                   1,071,389  66%
      - funcall-interactively                               1,071,381  66%
       - profiler-report                                    1,071,381  66%
        - profiler-report-memory                            1,071,381  66%
         - profiler-memory-profile                            936,852  57%
            profiler-make-profile                               1,560   0%
         + profiler-report-profile-other-window               134,529   8%
    + execute-extended-command--shorter                       117,026   7%
    + sit-for                                                  40,850   2%
     delete-other-windows                                     274,505  16%
   + next-line                                                  7,836   0%
  + byte-code                                                  42,994   2%
+ redisplay_internal (C function)                              41,588   2%
+ timer-event-handler                                           5,220   0%
+ tooltip-show-help                                             2,088   0%
  mouse-fixup-help-message                                      1,499   0%
  ...                                                               0   0%

I suppose you didn't wait until the tooltips really showed up.  When I
do wait I get something like:

- timer-event-handler                                      15,930,094  28%
 - apply                                                   15,925,918  28%
  - tooltip-timeout                                        15,924,874  28%
   - run-hook-with-args-until-success                      15,924,874  28%
    - tooltip-help-tips                                    15,924,874  28%
     - tooltip-show                                        15,924,874  28%
      - x-show-tip                                            675,546   3%
       - face-set-after-frame-default                         637,389   3%
        - face-spec-recalc                                    629,704   3%
         + face-spec-reset-face                               605,688   3%
         + face-spec-set-2                                     11,040   0%
         + face-spec-choose                                     7,756   0%
          face-list                                             4,176   0%
    jit-lock-context-fontify                                    1,044   0%
 + timer-inc-time                                               3,132   0%
+ command-execute                                           1,396,925   7%
+ redisplay_internal (C function)                             660,432   3%
+ tooltip-show-help                                             5,220   0%
+ frame-windows-min-size                                        1,044   0%
+ eldoc-schedule-timer                                          1,044   0%
  ...                                                               0   0%

and after another attempt:

+ timer-event-handler                                      16,921,522 -22%
+ command-execute                                           1,934,186   9%
+ redisplay_internal (C function)                           1,081,661   5%
+ #<compiled 0x5afd1f>                                        189,536   0%
+ mouse-fixup-help-message                                     12,528   0%
+ clear-transient-map                                           6,820   0%
+ tooltip-show-help                                             5,220   0%
+ clear-transient-map                                           4,492   0%
  gui-set-selection                                             1,044   0%
+ eldoc-schedule-timer                                          1,044   0%
  ...                                                               0   0%

So the percentages apparently get wrong over time, maybe due to some
overflow.  But I'm quite sure that the backtrace unifying algorithm
(`profiler-calltree-build-unified') is inherently broken.  I'm not sure
though whether there's any chance to fix that in the first place.

martin



reply via email to

[Prev in Thread] Current Thread [Next in Thread]