3 ms·
Shrinkwrap: Taming Dynamic Shared Objects
- Animats 5y agoDidn't we do this last week?
- setheron 5y agoI got an email asking for second change pool so I clicked it. Sorry. Didn't know someone else submitted.
- vup 5y agoAs 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.