Subject: bug#77961: 31.0.50; Rendering HTML email is very slow since commit #eab14d68b2e72b9a6b8b0cc67c9667c2bfbed4f5

From: Eli Zaretskii <[email-masked]>
Date: Tue, 22 Apr 2025 16:13:37 +0300

> From: Gerd Möllmann <[email-masked]>
> Cc: martin rudalics <[email-masked]>,  [email-masked],
>   [email-masked],  [email-masked]
> Date: Tue, 22 Apr 2025 14:57:51 +0200
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> >> > Looking into reverse call tree (B), I see that
> >> >
> >> >         1874  33% + set-window-configuration
> >> >
> >> > takes 1/3 of CPU cycles. Looking into its source, it does deal with
> >> > glyph matrices. So, it is the suspect, judging from the submitted
> >> > profiler report.
> >> 
> >> Thanks, indeed.
> >> 
> >> Which I also find weird. Why is that done in the first place?
> >
> > If the comment in set-window-configuration before it messes with glyph
> > matrices doesn't answer this question, maybe Martin (CC'ed) can help us
> > understand the reason?
> 
> Thanks, but I meant why does shr so many set-window-configuration calls.

It calls save-window-excursion.  It does that because it performs
layout in Lisp, so it needs to futz with the selected window's
settings.

I believe if you set shr-use-fonts to nil, this will be avoided.  (But
the layout will be less pretty when using variable-pitch fonts.)