Re: help wanted reproducing reported performance regression in groff 1.24

"G. Branden Robinson" <[email protected]> Tue, 17 Mar 2026 06:41:50 -0500
Newsgroups gmane.comp.printing.groff.general
Message-ID <20260317114150.qvpzlky4tg3t3zwk@illithid>
Hi Morten,

At 2026-03-17T10:16:16+0100, Morten Bo Johansen wrote:
> On 2026-03-17 G. Branden Robinson wrote:
> > At 2026-03-16T19:19:04-0500, G. Branden Robinson wrote:
> > An Arch Linux user has reported a performance regression in man page
> > rendering in groff 1.24.  For "small" man pages (or collections
> > thereof), it's not noticeable, but the reported degradation is
> > quadratic in large inputs, roughly twice as bad as one would expect
> > for 25 copies in a row of the gcc man page.
> > 
> > I'm not able to reproduce the problem.
> 
> I get these numbers:
> 
>   1  0.07  0.08
>   2  0.14  0.17
>   4  0.27  0.41
>   8  0.54  1.06
>  16  1.10  5.03
>  32  2.17  20.80
>  64  4.52  79.39

That's pretty hellacious.

> % uname -a
> Linux mathilde 6.18.18-1-lts #1 SMP PREEMPT_DYNAMIC Fri, 13 Mar 2026 20:22:24 +0000 x86_64 GNU/Linux
> 
> I am also using Arch Linux.

What libc and libstdc++/libc++ does your system use?

> I seemed to nail the performance regression down to this commit:
> 
>   10 months ago 732b07d G. Branden Robinson         ∙ [man]: Fix Savannah #65190 (1/2)

That's the same commit identified in Savannah #68145.  But I think it
may be a case of a change _exposing_ a latent bug (or, in this case,
unperformant selection of an alogorithm or data structure) rather than
the change _causing_ the problem.

(That distinction may ring a bell for readers of this list.  :) )

> Hope this is useful.

Can you re-run your test scenario with the `-Z` option added to groff's
command line?  I'm curious to know how cutting grotty out of the
execution pipeline affects the numbers.

Regards,
Branden
signature.asc (application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEh3PWHWjjDgcrENwa0Z6cfXEmbc4FAmm5PfQACgkQ0Z6cfXEm
bc6GqRAAjhe38Toxt4yBHzX9RyLjjhNR9A1rYntfEah9bZ3dLdvmfT1VGdozjD+e
e3Djdpw12sKpAJJ2S8PYpyu5eJuK33g/jMTH0ctZJD6NkMl10OG07bpRw7n6R/vH
MWzKifJ6Z4jUE5aF7eHTo3+sSvbtW9RqvTvbR+GYrMV+0Y8M8nWcqFAjSTIpxoNU
POgFWsQDXZu3X+raLvUq30baDXKerxd/rTi2lJbUBaTscnr4PjYOY3STSELdUaj5
u6jPKsFM8VMOqmi1FX69xCx019cg37A08yFRLici3L2g4d13Qbtmf6oSaetSJQyr
bmo4D1hukdmrRNJs0BqN9Z0Ot7w+L3DKfpYUEWEMQwHmkK5grw0UJQhWvfWtnxxZ
Rn/K1OBmh5AJ96h5Px1lAkJXFbePHl34ZPJE4CbSyrHcWssXKSBn29CXzyD+RUOq
7df6lC3bcxlRVS1WDwLF8/ESthXfMDZFAZaQ9/rAsc7/IQmyXcrf/eZyV2LkVQkv
eqb9nhkh36gb6vFxgnTxxb4MsEhEo6VxnYV1Mneio1+mZinbyOzUo7oHMX/nkuE9
039GI3zKQBcpvpoJQt/VYtZMR2Xjr9I75OpTbB7kmVf5EKQT8h8zI0CKDDIhqflC
zb3Db1lO+PHedDts3q+sL5fxZBZzEKuQlc/fp5aUKfevCIG/13M=
=/St+
-----END PGP SIGNATURE-----