我刚刚将 2 台机器从 Fedora 31 升级到 33,通过升级,Perl 从 5.30.3 升级到 5.32.1。
我注意到的第一件事是 GDBM_File.pm 不再包含在 Perl 核心中,但这没有问题。
我注意到的第二件事是在 fc33/perl5.32.1 中写入 GDBM非常慢。这是个问题。
我注意到第一台机器上有些不对劲,所以在升级之前我在第二台机器上用 fc31/perl5.30.3 运行了一个小基准测试。
gdbm1.pl 正在从 ascii 文本文件重建一个 db 文件,大约有 3300 万个条目。gdbm0.pl 正在读取相同的 ascii 文本文件,并执行与 gdbm1.pl 完全相同的所有操作,除了不执行实际的哈希赋值“$db{...} = ...”。这是唯一的不同。(ascii 文件大约为 11GB。)
FC31/Perl5.30.3:
[259] time ./gdbm0.pl 16
real 4m51.593s
user 4m49.808s
sys 0m1.306s
[260] time ./gdbm1.pl 16
real 11m39.682s
user 6m30.619s
sys 3m19.260s
Run Code Online (Sandbox Code Playgroud)
FC33/Perl5.32.1:
[287] time ./gdbm0.pl 16
real 5m10.379s
user 5m8.764s
sys 0m1.299s
[288] time ./gdbm1.pl 16
real 554m48.187s …Run Code Online (Sandbox Code Playgroud)