On 9/1/2024 2:28 AM, Reinhard Kotucha via luatex wrote:
On 2024-08-31 at 21:50:33 +0200, Hans Hagen wrote:
> on 400 10 character exceptions i see no gain (on a 5 year old laptop) as
> we're in the random runtime measurements; runs only differ in the second
> decimal so .452 .. .454 which makes it hard to check fo it matters
Regarding performance tests, there are a few things worth to be
mentioned. You get different results in different environments.
First of all, in TeX Live luatex.ini contains the line
\input load-unicode-data.tex
This huge file blows up the format file and increases startup time
significantly. AFAIK it's currently only used by LaTeX and can be safely
removed from all plain TeX formats.
Isn't there also that file that uses \pdfglyphtounicode ? I don't use it
but loading the 50 K lines file could be sped up a bit.
Another point is kpathsea. It accelerates file lookup significantly
but nowadays TeX Live provides more than 200,000 files and processing
all the ls-R files takes a lot of time too.
The solution is to create a tiny self-contained TeX distribution
on-the-fly which only contains the files needed.
http://reinhardk.ddns.net/scripts/tex/tinytex/
I recently investigated because there was a talk about a new
typesetting system called "Typst" at TUG-2023. They claimed that it's
extremely fast, a "hello world" can be compiled within 140 ms.
So as soon as context processes a "Hello World" faster than say latex
it's a better system? Alas luametatex needs .46 sec on windows 10 (as
does luatex), .39 on the linux subsystem, .36 on bare metal linux (all
the same 7th gen intel 2018 laptops). I did numerous performance tests
over time (and wrote about it) and one has to test on real (more
complex, more macros, more fonts, more anmything) document to get an
idea about what matters where wrt performance. Even then it's a useless
discussion if one has (wants) to use the system that does the job best
(or fist better).
A \starttext Hello world! \stoptext run gives this (slightly different
setup):
pdftex 0.65
xetex 0.80
luatex 0.89
luametatex 0.61
luametatex cf 0.50
That's the average of 1000 runs and a run includes the management i.e. a
startup script, multipass data processing and such. In the end it
doesn't tell us anything here.
This somewhat slow kpse file lookup is why context had a minimal
distribution for mkii right from the start. Also, the overhead of
loading the lsr files comes with every kpsewhich but that we could get
around using different startup scripts.
But that's all kind of old because SSD combined with operating systems
using abundant memory for directory and file caching helps a lot. Just
measure a decent tex run (or making a format) after a system restart and
then a second time.
With the setup decribed above I can compile a "hello world" with
Knuth's TeX within 13 ms and "The TeXbook" (285 pages) in less than
190 ms.
What system? Luatex or pdftex?
But it would take much longer with load-unicode-data.tex in the format
file and a complete TeX Live installation.
Depends on what load-unicode-data does, but a bit bigger format
shouldn't matter that muchm should it? We're not suddenly in the seconds.
In order to compare performance on different machines it's necessary
to make sure that the environments are comparable. Especially the
startup time has a significant impact on the results.
Add a few populate caches runs and nothing in the background that wastes
the cpu cache,
Hans
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------