unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Fabrice Popineau <fabrice.popineau@gmail.com>
Cc: acm@muc.de, emacs-devel@gnu.org
Subject: Re: Is Emacs buffer scroll/redisplay slow?
Date: Sun, 19 Jan 2020 17:28:32 +0200	[thread overview]
Message-ID: <834kwrzcrj.fsf@gnu.org> (raw)
In-Reply-To: <CAFgFV9O48kD5+rV2NDgRe4qVLJ=czsLGhinHRnm-Wdyyy--Bgg@mail.gmail.com> (message from Fabrice Popineau on Sun, 19 Jan 2020 15:24:19 +0100)

> From: Fabrice Popineau <fabrice.popineau@gmail.com>
> Date: Sun, 19 Jan 2020 15:24:19 +0100
> Cc: Emacs developers <emacs-devel@gnu.org>
> 
>  > .... scrolling through an elisp buffer: I started the timer by hand and
>  > scrolled down for 1000 lines ....
> 
>  How, exactly, did you do the scrolling?  How did you stop the scrolling
>  at 1000 lines?  Do you get this slowness on any elisp buffer, or is it a
>  particular one?
> 
> I used my phone timer. It was my init.el file but I get the same result with dired.el

You didn't answer the question about the exact way of scrolling you
used.

Also, did you measure the CPU time it took, out of those 35 sec?  (I
assume the time you measured was elapsed time, yes?)

>  > .... and it took 45s on Windows/WSL and 35s on Windows/native.
> 
>  That is slow indeed.
> 
> Definitely.

Not necessarily.  The elapsed time has little to do with the speed we
scroll.

>  Have you tried profiling this scrolling, yet?  If not, I suggest you do,
>  with M-x profiler-start <CR> <CR>, running the scrolling, then M-x
>  profiler-report.  In the report buffer, hit <CR> to get successively
>  deeper results.
> 
>  This may well give you an idea where the slowness is happening.
> 
>  
> You are right. I should have tried it right away.
> 
> image.png
> 
> I am not sure there is anything unexpected in there. 
> The lisp machinery interpreting commands accounts for most of the time,
> especially `completing-read-default' and I wonder why? Is it because of the `make-composed-keymap' call
> which occurs in `completing-read-default'?

Which brings us back to the question of how did you scroll through
those 1000 lines.  I wouldn't expect to see completion code so high on
the profile, it almost sounds like the profile didn't measure the
important stuff.  (Was this the CPU profile or "memory" profile, btw?
The latter is largely useless.)



  reply	other threads:[~2020-01-19 15:28 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-19  9:34 Is Emacs buffer scroll/redisplay slow? Fabrice Popineau
2020-01-19 11:51 ` Alan Mackenzie
2020-01-19 14:24   ` Fabrice Popineau
2020-01-19 15:28     ` Eli Zaretskii [this message]
2020-01-19 15:34       ` Fabrice Popineau
2020-01-19 16:02         ` Eli Zaretskii
2020-01-19 17:15           ` Fabrice Popineau
2020-01-19 22:20     ` Stefan Monnier
2020-01-20  0:23       ` Fabrice Popineau
2020-01-20 13:20         ` Stefan Monnier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=834kwrzcrj.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=acm@muc.de \
    --cc=emacs-devel@gnu.org \
    --cc=fabrice.popineau@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).