Subject: bug#65908: 29.1.50; Emacs 29 regresses on macOS

From: Eli Zaretskii <[email-masked]>
Date: Wed, 04 Oct 2023 10:38:39 +0300

> Cc: [email-masked]
> From: Gerd Möllmann <[email-masked]>
> Date: Wed, 04 Oct 2023 07:44:33 +0200
> 
> Zhang Haijun <[email-masked]> writes:
> 
> > 1 emacs -Q
> > 2 paste the following code to scratch buffer and execute it for saveral times
> >
> > (benchmark-progn 
> >   (setq enable-dir-local-variables nil
> >             enable-local-variables nil)
> >
> >   (let* ((test-dir "~/source/emacs-git/lisp")
> >              (file-list (directory-files test-dir t
> >                                                        "\\`[fsw].*[.]el\\'" t))
> >              (start-tm (current-time))
> >              end-tm buf buf-list)
> >
> >       (dolist (test-file file-list)
> >         (setq buf (find-file-noselect test-file))
> >         (with-current-buffer buf
> >             (goto-char (point-min))
> >             (while (not (eobp))
> >               (end-of-defun)))
> >         (setq buf-list (cons buf buf-list)))
> >
> >       (setq end-tm (current-time))
> >
> >       (dolist (buf buf-list)
> >         (kill-buffer buf))
> >
> >       (let ((delta (time-subtract end-tm start-tm)))
> >         (message "--- files: %d, delta: %s"
> >                      (length file-list) (float-time delta)))))
> 
> (Your mailer does strange things with whitespace...)
> 
> > Time used in Emacs 29 is 1.6x than in Emacs 27. They are all built with "-O2".
> > I also tested on Linux. There is no such big regress.
> 
> Thanks for the report.
> 
> I can reproduce this on macOS 14.0 (OCLP).
> 
> emacs-28, HEAD:
> "--- files: 61, delta: 3.086468"
> "--- files: 61, delta: 3.106478"
> "--- files: 61, delta: 3.325344"
> 
> emacs-29, HEAD:
> "--- files: 61, delta: 5.052421"
> "--- files: 61, delta: 5.068663"
> "--- files: 61, delta: 5.110502"
> 
> FWIW, master
> "--- files: 61, delta: 5.124109"
> "--- files: 61, delta: 5.101217"
> "--- files: 61, delta: 5.13068"

A completely expanded Lisp profile, after loading the Lisp files
involved in this as *.el, would be appreciated.