TeXLive 2020-2021-2022 表现

TeXLive 2020-2021-2022 表现

免责声明:这篇文章有点长...如果你不关心 TeX Live 生态系统行为和 LaTeX 编译时间,请忽略它!:)

我有一个“复杂”的项目(论文模板) 使用 BibLaTeX 来编写参考书目。我尝试编译分支 7.0.0点击此处压缩) 使用以下命令行 latexmk -time -shell-escape -synctex=1 -output-format=pdf -file-line-error -silent -pdf template 和四个不同版本的 TeX Live (2020 至 2022) 来管理项目的运行情况。

所有时间以秒为单位,是使用 2018 年初的 MacBook Pro 中的 macOS Ventura 获得的。所有时间都是 4 次执行中的 3 次的平均值(始终忽略每个版本的第一次执行以受益于磁盘缓存)。标准偏差很低。

我的观察是:

  • 的编译时间biber一直在增加(自 TL 2020 以来增加了 32%)。参见第 (2) 行。
  • pdflatex从 TL 2020 到 TL 2021/2,编译时间增加了 25% 以上。请参阅第 (1) 行。
  • 在 TL2022 中,第二次及后续执行的编译时间pdflatex显著增加 (>40%)。请参阅 TL 2020 列,第 (1) 行与第 (3)、(5) 行和第 (6) 行。
  • latexmk在不同版本中表现不同。
    • 如果没有文件,它会跳过TL 2021-dev 中latexmkrc的一次执行,并在 TL 2022 中运行两次。pdflatexbiber
    • 使用一个latexmkrc文件(见下面的文件副本)来解决词汇表中的依赖关系,它会跳过pdflatexTL 2021-dev 和 TL 2022 中的一次执行。

关于以下内容的任何提示:

  • 为什么latexmkTL 的不同版本表现如此不同?最后一次执行pdflatex是必要的吗?
  • 为何biber越来越慢了?
  • 为什么pdflatexTL 2020 中的第 2 次及后续运行速度较慢?

运行时间没有 latexmkrc

2020 2021 2021-dev 2022
pdflatex 4.11 5.89 5.19 5.10 (1)
比伯 1.59 1.84 1.72 2.10 (2)
pdflatex 4.29 6.38 5.62 7.21 (3)
比伯 ---- ---- ---- 2.09 (4)
pdflatex 4.30 6.47 5.80 7.23 (5)
pdflatex 4.37 6.37 ---- 7.25 (6)
加速时间 (*)19.80 (*)28.39 (*)19.43 33.78

(*)如果没有latexmkrc

(----)latexmk未运行此命令(或未报告其时间)

运行时间 latexmkrc

2020 2021 2021-dev 2022
pdflatex 4.03 5.72 5.02 5.39
制作词汇表 ---- ---- 1.59 1.69
比伯 1.53 1.68 1.66 2.08
pdflatex 4.35 6.24 5.62 7.22
比伯 1.61 1.69 1.72 2.07
制作词汇表 ---- ---- 1.52 1.56
pdflatex 4.34 6.32 5.63 7.25
pdflatex 4.35 6.29 ---- ----
—————— —————— —————— —————— —————————
加速时间 24.53 32.90 23.86 29.46

软件版本

TeXLive 版本。
2020 Latexmk,John Collins,2019 年 12 月 26 日。版本 4.67
这是 pdfTeX,版本 3.14159265-2.6-1.40.21(TeX Live 2020)(预加载格式=pdflatex)
biber 版本:2.14
Makeglossaries 版本 4.45(2020-01-18)
————— ———————————————————————————————————————————————————————
2021 Latexmk,John Collins,2020 年 9 月 29 日。版本 4.70b
这是 pdfTeX,版本 3.141592653-2.6-1.40.22(TeX Live 2021)(预加载格式=pdflatex)
biber 版本:2.16
Makeglossaries 版本 4.45(2020-01-18)
————— ———————————————————————————————————————————————————————
2021-dev Latexmk,John Collins,2022 年 3 月 17 日。版本 4.77
这是 pdfTeX,版本 3.141592653-2.6-1.40.23(TeX Live 2022/dev)(预加载格式=pdflatex)
biber 版本:2.17
Makeglossaries 版本 4.49 (2021-11-01)
————— ———————————————————————————————————————————————————————
2022 Latexmk,John Collins,2023 年 1 月 7 日。版本 4.79
这是 pdfTeX,版本 3.141592653-2.6-1.40.24(TeX Live 2022)(预加载格式=pdflatex)
biber 版本:2.18
Makeglossaries 版本 4.51 (2022-11-02)

文件latexmkrc

if ( ! $silent ) {
    if ($^O =~ /darwin/) {
       print "DIAGNOSTICS = Operating System Detected: Mac OSX\n";
       $filesep = '/'
    } elsif ($^O =~ /linux/) {
       print "DIAGNOSTICS = Operating System: Linux\n";
       $filesep = '/'
    } else {
       print "DIAGNOSTICS = Operating System: Windows\n";
       $filesep = '\\'
    }
}

add_cus_dep('glo', 'gls', 0, 'makeglo2gls');
add_cus_dep('acn', 'acr', 0, 'makeglo2gls');
add_cus_dep('slo', 'sls', 0, 'makeglo2gls');
add_cus_dep('cho', 'chs', 0, 'makeglo2gls');

sub makeglo2gls {
    my ($base_name, $dir) = fileparse( $_[0] ); #handle -outdir param by splitting path and file, ...
    if ($^O =~ /darwin/) {
        system "makeglossaries -q -d '$dir' '$base_name'"; #macos
    } elsif ($^O =~ /linux/) {
        system "makeglossaries -q -d '$dir' '$base_name'"; #unix
    } else {
        system "makeglossaries", "-q", "-d", "$dir", "$base_name"; #windows
    };
}

push @generated_exts, 'glo', 'gls', 'glg';
push @generated_exts, 'acn', 'acr', 'alg';
push @generated_exts, 'slo', 'sls', 'slg';
push @generated_exts, 'cho', 'chs', 'chg';
$clean_ext .= ' %R.ist %R.xdy';

相关内容