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

From: Gerd Möllmann <[email-masked]>
Date: Tue, 22 Apr 2025 15:18:50 +0200

Eli Zaretskii <[email-masked]> writes:

>> 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.)

Thanks.

I'm wondering if shr could do its thing within one save-window-excursion,
or at least in fewer of them? But that's something for some shr specialist.