mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-08 07:56:16 -05:00
gexp: Cache the module to derivation mappings.
This reduces the number of 'add-data-to-store' cache lookups from 3329 to 2743 (hit rate: 27% to 11%) when running: GUIX_PROFILING=add-data-to-store-cache guix build libreoffice -nd Execution time of "guix build libreoffice -nd" goes from 1.86s to 1.80s. * guix/gexp.scm (imported+compiled-modules): Wrap body in 'mcached'.
This commit is contained in:
parent
c57e417eff
commit
f5fca9a82c
1 changed files with 18 additions and 15 deletions
|
@ -660,21 +660,24 @@ (define* (imported+compiled-modules modules system
|
|||
(module-path %load-path))
|
||||
"Return a pair where the first element is the imported MODULES and the
|
||||
second element is the derivation to compile them."
|
||||
(mlet %store-monad ((modules (if (pair? modules)
|
||||
(imported-modules modules
|
||||
#:system system
|
||||
#:module-path module-path)
|
||||
(return #f)))
|
||||
(compiled (if (pair? modules)
|
||||
(compiled-modules modules
|
||||
#:system system
|
||||
#:module-path module-path
|
||||
#:extensions extensions
|
||||
#:guile guile
|
||||
#:deprecation-warnings
|
||||
deprecation-warnings)
|
||||
(return #f))))
|
||||
(return (cons modules compiled))))
|
||||
(mcached equal?
|
||||
(mlet %store-monad ((modules (if (pair? modules)
|
||||
(imported-modules modules
|
||||
#:system system
|
||||
#:module-path module-path)
|
||||
(return #f)))
|
||||
(compiled (if (pair? modules)
|
||||
(compiled-modules modules
|
||||
#:system system
|
||||
#:module-path module-path
|
||||
#:extensions extensions
|
||||
#:guile guile
|
||||
#:deprecation-warnings
|
||||
deprecation-warnings)
|
||||
(return #f))))
|
||||
(return (cons modules compiled)))
|
||||
modules
|
||||
system extensions guile deprecation-warnings module-path))
|
||||
|
||||
(define* (lower-gexp exp
|
||||
#:key
|
||||
|
|
Loading…
Reference in a new issue