Subject: Re: bug#25706: 26.0.50; Slow C file fontification

From: Ravine Var <[email-masked]>
Date: Mon, 14 Dec 2020 12:50:36 +0530

Alan Mackenzie <[email-masked]> writes:
> Have you got the option fast-but-imprecise-scrolling set (or customized)
> to non-nil?  If not, could I suggest you try it.  It's effect is to stop
> Emacs fontifying every screen it scrolls over, instead only fontifying
> screens when it's got no more input commands waiting.  This speeds
> things up quite a bit on a slower machine.

Turning on fast-but-imprecise-scrolling improves things by a lot.
Viewing and scrolling the osprey file is much faster/smoother and the
screen doesn't freeze.

> Please put the following code into your *scratch* buffer (it's the same
> code I've posted before) and evaluate it:
>
>     (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)))
>
> Then please load osprey_reg_map_macro.h freshly into a buffer, and type
> (or cut and paste) the following into M-:
>
>     (time-it (let ((n 10)) (while (> n 0) (scroll-up) (sit-for 0) (setq n (1- n)))))
>
> What is the reported timing for scrolling these ten screens?

Running emacs -Q (master + 3 patches) :

With fast-but-imprecise-scrolling: 0.9250097274780273
Without fast-but-imprecise-scrolling: 0.8903303146362305

I think using the fast-but-imprecise-scrolling option
is a workaround that can be used in underpowered machines
for big header files...