emacs-devel
[Top][All Lists]
Advanced

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

Re: Long lines and bidi


From: Dmitry Antipov
Subject: Re: Long lines and bidi
Date: Fri, 08 Feb 2013 20:38:24 +0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130107 Thunderbird/17.0.2

On 02/08/2013 06:46 PM, Eli Zaretskii wrote:

Btw, if you are serious about finding a solution to the long-line
display misfeature (or any other too-slow redisplay situation), I
generally find it necessary to do precision timing of the suspicious
parts of code, because otherwise it is impossible to find the actual
culprits.  On GNU/Linux, I use the following simple function:

Ah, please, there is a difference between 2013 and 1980.

1) perf record -e stalled-cycles-frontend -e stalled-cycles-backend -F 10000 
[workload]
2) perf report --stdio ==>

25.18%        emacs  emacs                          [.] scan_buffer
 7.04%        emacs  emacs                          [.] bidi_resolve_weak
...
3) perf annotate scan_buffer --stdio ==>

      :                while (cursor >= ceiling_addr)
      :                  {
      :                    unsigned char *scan_start = cursor;
      :
      :                    while (*cursor != target && --cursor >= ceiling_addr)
65.74 :        526620:       movzbl (%r14),%eax
 6.46 :        526624:       cmp    %r15d,%eax
 0.17 :        526627:       je     526632 <scan_buffer+0x512>
27.33 :        526629:       sub    $0x1,%r14
 0.03 :        52662d:       cmp    %r14,%rbx
 0.19 :        526630:       jbe    526620 <scan_buffer+0x500>
      :                      ;

So, ~90% of time spent in scan_buffer is:

799                while (*cursor != target && --cursor >= ceiling_addr)
800                  ;

Dmitry




reply via email to

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