Subject: bug#50777: Dropping EIEIO from xref (for performance)

From: Daniel Martín <[email-masked]>
Date: Sat, 25 Sep 2021 16:07:40 +0200

Dmitry Gutov <[email-masked]> writes:

> Resending with the intended recipients (except for the maintainers who
> are automatically subscribed anyway, to spare the inboxes).
>
> With the recent discussion about our Lisp overhead when the search
> returns many matches, I went a couple more rounds to try to identify
> the hotspots.
>
> My main benchmark for that is
>
>   (benchmark 1 '(project-find-regexp "list"))
>
> in the Emacs repo. The 3 recent commits have reduced that time from 8s
> to 6.5s on my machine (under best conditions: warm disk cache and
> fresh Emacs session). The machine is pretty fast, so I figure we can
> multiply that timing by 2x, to imagine the average user experience.

Thanks for working on this.  I checked the patch and I also see a
similar speedup in my system, working with a large monorepo.

>
> I'd like to push it soon, so users of Emacs 28 can enjoy the speedup.
>
> What do people think?

I agree with Lars, it's better not to rush this change.  The change is
invasive and I think I was the only person to report a performance
problem so far in that part of the codebase.  I guess it's better to
merge this just after the Emacs 28 branch is cut, so that users in a
stable version are not affected by any potential bug/interface
incompatibility not caught during pretest.  Thanks.