emacs-devel
[Top][All Lists]
Advanced

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

Re: The Emacs master is much slower than the emacs-27 branch.


From: Gregory Heytings
Subject: Re: The Emacs master is much slower than the emacs-27 branch.
Date: Fri, 04 Dec 2020 09:59:24 +0000
User-agent: Alpine 2.22 (NEB 394 2020-01-19)


[Apparently this email, which I sent a few hours ago, did not reach the mailing list. I apologize if you receive it twice.]


I've got pretty much up to date copies of both the master and the emacs-27 branches.

When I run my customary benchmark (see below) on master's src/xdisp.c in master, it's taking around 34s. On emacs-27, it's taking 22s.

That's a massive slowdown. Does anybody know why this is happening? Should I raise a bug report?

The benchmark I run is this:

(defmacro time-it (&rest forms)
 "Time the running of a sequence of forms using `float-time'.
Call like this: \"M-: (time-it (foo ...) (bar ...) ...)\"."
 `(let ((start (float-time)))
   ,@forms
   (- (float-time) start)))

(defun time-scroll (&optional arg)
 (interactive "P")
 (message "%s"
          (time-it
           (condition-case nil
               (while t
                 (if arg (scroll-down) (scroll-up))
                 (sit-for 0))
             (error nil)))))

On a freshly loaded buffer, do M-: (time-scroll).


Did you use emacs -Q?  What is your platform?

Out of curiosity, I tried your benchmark on my computer (Debian GNU/Linux) for the following Emacs versions. I ran the benchmark four times for each version, and the results were stable for each version:

Emacs 23.4.1: 5.2s (that's not a typo: five seconds)
Emacs 24.5.1: 28.2s
Emacs 25.2.2: 27.6s
Emacs 26.3: 16.9s
Emacs 27.1: 18.5s
Emacs 28.0.50: 19.5s

I see a slowdown between 27 and 28, but not a massive one.

FWIW, here are the results of that benchmark after disabling global-font-lock-mode:

Emacs 23.4.1: 1.1s
Emacs 24.5.1: 1.8s
Emacs 25.2.2: 1.8s
Emacs 26.3: 3.0s
Emacs 27.1: 3.3s
Emacs 28.0.50: 3.3s



reply via email to

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