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

From: Gerd Möllmann <[email-masked]>
Date: Wed, 4 Oct 2023 09:50:18 +0200

On 04.10.23 09:38, Eli Zaretskii wrote:
>> 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.

I'm trying to bisect this, which turns out to be a bit tedious because 
many commits on emacs-29 don't build.  I'll come back when I have something.