3 ms·
As mentioned in the blog post, guix already does something similar, by patching glibc to support a per-application loader cache [1]. shrinkwrap seems to increas
by vup 5y ago
As mentioned in the blog post, guix already does something similar, by patching glibc to support a per-application loader cache [1]. shrinkwrap seems to increase the binary size a lot (6.6 MB without shrinkwrap, 13 MB after running shrinkwrap for emacs).
Also when comparing the performance, the guix approach seems to be a bit faster:
hyperfine -m 100 -w 5 -n shrinkwrap './emacs --version' -n guix 'emacs --version'
Benchmark #1: shrinkwrap
Time (mean ± σ): 68.8 ms ± 13.7 ms [User: 45.8 ms, System: 22.9 ms]
Range (min … max): 52.8 ms … 106.3 ms 100 runs
Benchmark #2: guix
Time (mean ± σ): 56.7 ms ± 12.3 ms [User: 34.9 ms, System: 21.7 ms]
Range (min … max): 42.7 ms … 84.6 ms 100 runs
Summary
'guix' ran
1.21 ± 0.36 times faster than 'shrinkwrap'
[1] https://guix.gnu.org/en/blog/2021/taming-the-stat-storm-with-a-loader-cache/ https://guix.gnu.org/en/blog/2021/taming-the-stat-storm-with...
- setheron 5y agoThat's interesting. I'll have to think on why (or profile) the ld.so.conf.cache way is faster. Thanks for the profile.