In the last couple of days I have been looking into texinfo.tex performance.
I have gained some quite significant speedups by changing the "dummies" that are written to auxiliary files be activated with a conditional rather by redefining them with \def. I have tested it on several manuals, but this is quite a major change so could do with more testing. I ran the tests below in a test directory, after running texi2pdf enough times that TeX would only be run once. The reported times were typical on my system after I ran the commands enough time so that disk caches were hot. BEFORE CHANGES with texinfo.tex 2022-12-26.11 [git 38e7fa90fadaecdc645d] $ time texi2pdf ../../emacs-lispref-27.2/elisp.texi real 0m7.394s user 0m7.167s sys 0m0.131s $ time texi2pdf ../../groff.texi real 0m1.890s user 0m1.746s sys 0m0.131s $ time texi2pdf ../../m4.texi real 0m0.893s user 0m0.798s sys 0m0.090s AFTER CHANGES with texinfo.tex 2022-12-28.00 [git ff79a7b0ba33e1c48]. $ time texi2pdf ../../emacs-lispref-27.2/elisp.texi real 0m6.274s user 0m5.980s sys 0m0.197s $ time texi2pdf ../../groff.texi real 0m1.562s user 0m1.447s sys 0m0.122s $ time texi2pdf ../../m4.texi real 0m0.845s user 0m0.698s sys 0m0.119s As you can see, there is about a 15% speedup - this will vary depending on the size of the manual and how much it used index entries and cross-references. I found that microtypograpic formatting also slows down the run a lot. When I turned this off, I got the following results: MICROTYPE OFF $ time texi2pdf ../../emacs-lispref-27.2/elisp.texi real 0m4.220s user 0m3.939s sys 0m0.174s $ time texi2pdf ../../groff.texi real 0m1.306s user 0m1.234s sys 0m0.082s $ time texi2pdf ../../m4.texi real 0m0.620s user 0m0.542s sys 0m0.081s Relative to the base, turning microtype off produces a further 10-25% decrease in execution time. Microtype output looks great but having faster processing runs will really make a difference for users too, helping them to work on their manuals more. I think we should turn microtype off by default.
