Subject: Re: bug#51886: 29.0.50; pixel-scroll-mode garbage collects like crazy

From: Robert Pluim <[email-masked]>
Date: Tue, 16 Nov 2021 14:28:23 +0100

>>>>> On Tue, 16 Nov 2021 15:05:32 +0200, Eli Zaretskii <[email-masked]> said:

    >> Date: Tue, 16 Nov 2021 15:21:31 +0800
    >> From:  Po Lu via "Bug reports for GNU Emacs,
    >> the Swiss army knife of text editors" <[email-masked]>
    >> 
    >> Starting from `emacs -Q', do M-x pixel-scroll-mode RET, then configure
    >> it as follows:
    >> 
    >> (setq pixel-dead-time 0)
    >> (setq pixel-resolution-fine-flag 1)
    >> (setq garbage-collection-messages t)
    >> 
    >> Then scroll the display with the mouse wheel.  It will garbage collect
    >> like crazy, leading to a great deal of stuttering (in emacs-28 as well).
    >> 
    >> I want to reuse most of the code in pixel-scroll.el for XInput2 pixel
    >> scrolling, but this is holding me back, as the excessive garbage
    >> collection makes it completely unusable.

    Eli> Did you try to figure out which part of the code produces most of the
    Eli> garbage?

I suspect itʼs the bit that counts from k to n by generating a list of
the integers from k to n and then running dolist over that.

As an aside, that code also does a lot of (sit-for 0), which I seem to
remember can trigger redisplay? Perhaps it should only do that when it
really wants to pause.

Robert
--