bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#21028: Performance regression in revision af1a69f4d17a482c359d98c00e


From: Clément Pit--Claudel
Subject: bug#21028: Performance regression in revision af1a69f4d17a482c359d98c00ef86fac835b5fac (Apr 2014).
Date: Wed, 2 Mar 2016 23:42:14 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1

On 03/02/2016 11:12 PM, Clément Pit--Claudel wrote:
> I've removed the dependency on CJK fonts; on my machine, this does
> the trick, provided you have XITS Math and Ubuntu Mono installed:
> 
> emacs -Q --eval "(progn (set-fontset-font \"fontset-startup\" 'unicode 
> \"Ubuntu Mono\" nil) (set-fontset-font \"fontset-startup\" 'unicode \"XITS 
> Math\" nil 'append) (dotimes (_ 500) (insert (make-string 20 8658) \"\n\")))"
> 
> Scrolling around this buffer is horribly slow.

Here's the few lines of a profile (full profile attached):

    Flat profile:

    Each sample counts as 0.01 seconds.
      %   cumulative   self              self     total
     time   seconds   seconds    calls   s/call   s/call  name
     69.14      6.61     6.61                             deliver_user_signal
      2.30      6.83     0.22      291     0.00     0.00  _init
      2.09      7.03     0.20  2446268     0.00     0.00  hash_lookup
      1.78      7.20     0.17  1109458     0.00     0.00  xfont_list_pattern
      1.36      7.33     0.13  7538722     0.00     0.00  char_table_ref
      1.36      7.46     0.13  2220018     0.00     0.00  ftfont_lookup_cache
      1.15      7.57     0.11  2774417     0.00     0.00  Fcompare_strings
      1.05      7.67     0.10  2778892     0.00     0.00  Fnreverse
      1.05      7.77     0.10 11525665     0.00     0.00  mark_object
      0.94      7.86     0.09 33105673     0.00     0.00  sub_char_table_ref

compare with this (with the aforementioned commit reverted):

    Flat profile:

    Each sample counts as 0.01 seconds.
      %   cumulative   self              self     total
     time   seconds   seconds    calls  ms/call  ms/call  name
      6.48      0.07     0.07  5576010     0.00     0.00  mark_object
      6.48      0.14     0.07  4987260     0.00     0.00  char_table_ref
      6.48      0.21     0.07                             deliver_user_signal
      5.56      0.27     0.06 12938424     0.00     0.00  sub_char_table_ref
      5.09      0.33     0.06  1407350     0.00     0.00  Fassq
      3.70      0.37     0.04    54802     0.00     0.00  
face_before_or_after_it_pos
      1.85      0.39     0.02  1232573     0.00     0.00  lookup_char_property
      1.85      0.41     0.02   954743     0.00     0.00  Fcons
      1.85      0.43     0.02   723140     0.00     0.00  find_interval
      1.85      0.45     0.02   505158     0.00     0.00  hash_lookup
      1.85      0.47     0.02   497590     0.00     0.00  
bidi_level_of_next_char
      1.85      0.49     0.02   497590     0.00     0.00  
bidi_move_to_visually_next

I've attached the two profiles. Does this make any sense?

Clément.

Attachment: fast-trace-with-reverted-commit
Description: Text document

Attachment: slow-trace-with-plain-emacs
Description: Text document

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

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