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).<p>Also when comparing the performance, the guix approach seems to be a bit faster:<p><pre><code> 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'
</code></pre>
[1] <a href="https://guix.gnu.org/en/blog/2021/taming-the-stat-storm-with-a-loader-cache/" rel="nofollow">https://guix.gnu.org/en/blog/2021/taming-the-stat-storm-with...</a>