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

user202729 at protonmail.com user202729 at protonmail.com
Sat Aug 31 06:34:32 CEST 2024


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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: a.diff
Type: text/x-patch
Size: 556 bytes
Desc: not available
URL: <https://tug.org/pipermail/luatex/attachments/20240831/96831e5c/attachment.bin>


More information about the luatex mailing list.