[luatex] Removing the zero-initialization of an array can speedup LuaTeX on plain TeX document by 25%

luigi scarso luigi.scarso at gmail.com
Mon Sep 2 12:11:21 CEST 2024


On Sat, 31 Aug 2024 at 15:17, user202729--- via luatex <luatex at tug.org>
wrote:

> Hi,
>
> Do you think the following is a reasonable possible performance
> improvement for LuaTeX? Thank you.
>
> ------
>
> In the hnj_hyphenation function, currently the large array `utf8word` is
> zeroed out every time the function is called.
>
> This is unnecessary (the string is always null-terminated before being
> used. Besides, observe that the function processes multiple words per call,
> without zeroing out the array between each word, so even with the current
> function there could be nonzero bytes after the null terminator at each use
> of the array).
>
> For a plain TeX file where macro expansion takes negligible time (such as
> tex.tex, the source code of TeX), this single improvement can speeds up the
> compilation time by 25%. On my machine, the runtime decreases from 3.064s
> to 2.327s.
>
> To generate `tex.tex`, you can download `tex.web` from CTAN package `tex`,
> and run `weave tex.web`
>
> The patch is attached below.


Committed  r72156 (TeXLive repo).

--
luigi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://tug.org/pipermail/luatex/attachments/20240902/bd4fc5f4/attachment.htm>


More information about the luatex mailing list.