Hello! The first patch improves cache handling, providing a generic way to trace caches. The second patch adds a separate package/graft cache, as was previously suggested in a comment. The cache hit rate can be seen by setting GUIX_PROFILING: --8<---------------cut here---------------start------------->8--- $ time GUIX_PROFILING=package-graft-cache ./pre-inst-env guix home build -v1 -n ~/src/configuration/home-config.scm 28.5 MB would be downloaded Package Graft Cache: fresh caches: 1 lookups: 794 hits: 784 (98.7%) cache size: 10 entries real 0m7.953s user 0m9.091s sys 0m0.291s --8<---------------cut here---------------end--------------->8--- The last patch improves performance in the presence of grafts by trimming exploration of the call tree in ‘map/accumulate-builds’. This is very much a heuristic, but it does help significantly for ‘guix system’, ‘guix home’, or ‘guix package’ with many packages. Thoughts? Ludo’. Ludovic Courtès (3): store: 'mcached' users can specify a cache ID. packages: Use separate package/graft cache. store: Use a decaying cutoff in 'map/accumulate-builds'. guix/packages.scm | 12 ++++-- guix/store.scm | 104 +++++++++++++++++++++++++++++++++------------- 2 files changed, 84 insertions(+), 32 deletions(-) base-commit: 0b4300d4fd8c972f0cb9d6751fc824b9a065b780 -- 2.36.0