bug-texinfo
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Post release texi2any performance regression


From: Gavin Smith
Subject: Re: Post release texi2any performance regression
Date: Sun, 5 Nov 2023 15:40:36 +0000

On Sun, Nov 05, 2023 at 11:59:11AM +0100, Patrice Dumas wrote:
> On Sat, Nov 04, 2023 at 04:06:05PM +0000, Gavin Smith wrote:
> > > At that point, using a new env variable to use perl for
> > > structuring/transformations would be very easy based on your patch.
> > > If you give a name, I can do it.
> > 
> > Would TEXINFO_XS_STRUCTURE be ok?
> 
> Should be done in
> https://git.savannah.gnu.org/cgit/texinfo.git/commit/?id=403894ff57d87dd86411f15105404197f3183d34
> 
> I timed
> ./texi2any.pl ../doc/texinfo.texi
> 
> with 7.1, nothing set in the environment, TEXINFO_XS_STRUCTURE set and
> TEXINFO_XS_CONVERT set (which should be very similar to nothing set in
> the environment for info output, except that some modules are not
> loaded).  I find that 7.1 is about 2% slower and the others are
> undistinguishable.

Thanks for adding the variable.

Although master was faster than 7.1, it should have been even faster,
because of the other slowdown.  Now that the recent change with
documentlanguage has been reverted, I'm happy that we're finally back
to having no more significant slowdown (for XS execution).

With the new XS modules enabled, it is actually faster now than 7.1 was.

The effect depends on the manual in question.  If it uses @def* commands
a lot this can make a big difference.  I regularly check the glibc
manual and the elisp manual as these are among the largest commonly used
Texinfo manuals.  texinfo.texi is a relatively small manual. (I'm open
to suggestions of other manuals worth checking for performance, too.)

Here's a typical comparison:

master:
$ time ../tp/texi2any.pl ../../libc/libc.texinfo 
creature.texi:309: warning: `.' or `,' must follow @xref, not f

real    0m5.931s
user    0m5.699s
sys     0m0.225s

7.1:
$ time texi2any ../../libc/libc.texinfo 
creature.texi:309: warning: `.' or `,' must follow @xref, not f

real    0m5.978s
user    0m5.755s
sys     0m0.220s


master:

$ time ../tp/texi2any.pl ../../emacs-lispref-27.2/elisp.texi 
functions.texi:2390: warning: @inforef is obsolete
errors.texi:226: warning: unexpected argument on @ignore line: The following 
seem to be unused now.

real    0m5.416s
user    0m5.189s
sys     0m0.220s

7.1:

$ time texi2any ../../emacs-lispref-27.2/elisp.texi 
functions.texi:2390: warning: @inforef is obsolete
errors.texi:226: warning: unexpected argument on @ignore line: The following 
seem to be unused now.

real    0m5.471s
user    0m5.269s
sys     0m0.200s




reply via email to

[Prev in Thread] Current Thread [Next in Thread]