Subject: Re: bug#64772: TeXlive (specifically LuaLaTeX) has become terribly slow
From: Nicolas Goaziou <[email-masked]>
To: Malte Frank Gerdes <[email-masked]>
Cc: [email-masked]
Date: Sun, 01 Sep 2024 01:16:41 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

Malte Frank Gerdes <[email-masked]> writes:

> i'm building a small document with LuaLaTeX, for that i have use the
> following manifest
>
> --8<---------------cut here---------------start------------->8---
> (specifications->manifest
>   (list
>     "texlive-amsmath"
>     "texlive-todonotes"
>     "texlive-xpatch"
>     "texlive-collection-luatex"
>     "texlive-collection-basic"
>     "texlive-latexmk"
>     "texlive-scheme-basic"
>     "texlive-biber"
>     "texlive-booktabs"
>     "texlive-microtype"
>     "texlive-koma-script"
>     "texlive-lipsum"
>     "texlive-pgfplots"
>     "texlive-biblatex"))
> --8<---------------cut here---------------end--------------->8---
>
>
> This command takes quite a long time
>
> --8<---------------cut here---------------start------------->8---
> guix time-machine --commit=21b718f4d6c3ded8ef50d12f6e9ae6474f74620f \
>        shell --manifest=guix.scm -- latexmk -lualatex -auxdir=.tex-cache main
> --8<---------------cut here---------------end--------------->8---
>
>
> To be precise:
>
> --8<---------------cut here---------------start------------->8---
>         Command being timed: "guix shell -m guix.scm -- latexmk -lualatex -auxdir=.tex-cache main"
>         User time (seconds): 14.60
>         System time (seconds): 87.58
>         Percent of CPU this job got: 99%
>         Elapsed (wall clock) time (h:mm:ss or m:ss): 1:43.18
>         Average shared text size (kbytes): 0
>         Average unshared data size (kbytes): 0
>         Average stack size (kbytes): 0
>         Average total size (kbytes): 0
>         Maximum resident set size (kbytes): 179368
>         Average resident set size (kbytes): 0
>         Major (requiring I/O) page faults: 0
>         Minor (reclaiming a frame) page faults: 118914
>         Voluntary context switches: 2146
>         Involuntary context switches: 3693
>         Swaps: 0
>         File system inputs: 462280
>         File system outputs: 6584
>         Socket messages sent: 0
>         Socket messages received: 0
>         Signals delivered: 0
>         Page size (bytes): 4096
>         Exit status: 0
> --8<---------------cut here---------------end--------------->8---
>
>
> Running `latexmk -lualatex -auxdir=.tex-cache main` takes under 10
> seconds.  These times are for fresh builds, i.e. the intermediate files
> have been removed.  Still even recompilation is many times slower with
> guix provided LuaLaTeX than it is on Arch.  I should also note, that
> using the modular TeX packages actually helps here, with the full
> TeXlive package the compilation time is nearly twice as much.
>
> Another thing i noticed is, that a directory with the following
> structure gets created:
>
> --8<---------------cut here---------------start------------->8---
> {
> └── gnu
>     └── store
>         └── 3wsicprhgxhcncaf5mv26wwbhhh8p6yj-profile
>             └── share
>                 └── texmf-dist
>                     └── luatex-cache
>                         └── generic
>                             ├── fonts
>                             │   └── otl
>                             │       ├── lmroman10-italic.lua
>                             │       ├── lmroman10-italic.luc
>                             │       ├── lmroman10-regular.lua
>                             │       ├── lmroman10-regular.luc
>                             │       ├── lmroman12-regular.lua
>                             │       ├── lmroman12-regular.luc
>                             │       ├── lmroman17-regular.lua
>                             │       ├── lmroman17-regular.luc
>                             │       ├── lmromanslant10-regular.lua
>                             │       ├── lmromanslant10-regular.luc
>                             │       ├── lmsans10-bold.lua
>                             │       ├── lmsans10-bold.luc
>                             │       ├── lmsans10-regular.lua
>                             │       └── lmsans10-regular.luc
>                             └── names
>                                 ├── luaotfload-lookup-cache.lua
>                                 ├── luaotfload-lookup-cache.luc
>                                 ├── luaotfload-names.lua.gz
>                                 └── luaotfload-names.luc.gz
>
> 11 directories, 18 files
> --8<---------------cut here---------------end--------------->8---
>
> This is obviously for caching purposes, but (seemingly random) having a
> folder named '{' in your working directory certainly is confusing.

Both issues reported here are now fixed. Thank you.

Regards,
-- 
Nicolas Goaziou