Subject: bug#77924: 31.0.50; [Feature branch] Change marker implementation

From: Gerd Möllmann <[email-masked]>
Date: Thu, 24 Apr 2025 10:30:45 +0200

Eli Zaretskii <[email-masked]> writes:

> I trust you and Stefan to decide on that.  I myself am not familiar
> with the elisp-benchmarks suite well enough to have an opinion that is
> of importance.  From where I stand, the important part is comparing
> the current master with the branch.
>
>> Don't know about the scrolling benchmark. Is what is in elisp-benchmarks
>> enough? If not, can you please give me a bencnhmark file for what you
>> want benchmarked?
>
> I don't know whether we have it in elisp-benchmarks, but if we don't,
> then the following should be good enough:
>
> (defun scroll-up-benchmark ()
>   (interactive)
>   (let ((oldgc gcs-done)
>         (oldtime (float-time)))
>     (condition-case nil (while t (scroll-up) (redisplay))
>       (error (message "GCs: %d Elapsed time: %f seconds"
>                       (- gcs-done oldgc) (- (float-time) oldtime))))))
>
> Evaluate this, then invoke "M-x scroll-up-benchmark" in a large buffer
> with lots of non-ASCII characters.  Compare the timings between the
> two versions of Emacs.

elb-scroll from elisp-bechmarks is basically

      (dotimes (_ 10)
        (elb-smie-mode)
        (goto-char (point-min))
        (condition-case nil
            (while t (scroll-up nil) (redisplay 'force))
          (end-of-buffer nil))))))

looks similar, but I don't know what elb-smie-mode does.

Seems to have something to do with prog-mode, so maybe this depends on
the test file being a C file, which might be interesting for Visuwesh.