guix/guix
Ludovic Courtès 78daf9e02e
derivations: Make 'coalesce-duplicate-inputs' linear in the number of inputs.
Partly fixes <https://issues.guix.gnu.org/49439>.
Reported by Ricardo Wurmus <rekado@elephly.net>.

When running the command:

  guix environment pigx-scrnaseq --search-paths --no-grafts

this change reduces total heap allocations from 1.4GiB to 717MiB (49%)
and wall-clock time from 7.5s to 5.7s (24%).

Without '--no-grafts', heap allocations go from 2.1GiB to 1.4GiB (33%)
and wall-clock time from 12.1s to 10.9s (10%).

* guix/derivations.scm (coalesce-duplicate-inputs): Rewrite using a hash
table to make it O(N) rather than O(N²).
2021-07-27 18:26:08 +02:00
..
build build: Update uglifyjs for minify-build-system. 2021-07-19 14:46:28 +03:00
build-system build: Update uglifyjs for minify-build-system. 2021-07-19 14:46:28 +03:00
import import/print: package->code: Fix license object. 2021-07-19 19:57:51 +02:00
scripts pack: Streamline how files are included in tarballs. 2021-07-18 02:10:49 -04:00
store
tests
android-repo-download.scm
avahi.scm
base16.scm
base32.scm
base64.scm
build-system.scm
bzr-download.scm
cache.scm
channels.scm
ci.scm ci: Properly construct URLs. 2021-07-16 19:48:24 +02:00
colors.scm
combinators.scm
config.scm.in
cpio.scm
cve.scm
cvs-download.scm
d3.v3.js
deprecation.scm
derivations.scm derivations: Make 'coalesce-duplicate-inputs' linear in the number of inputs. 2021-07-27 18:26:08 +02:00
describe.scm
diagnostics.scm
discovery.scm
docker.scm
download.scm
elf.scm
ftp-client.scm
gexp.scm
git-authenticate.scm
git-download.scm
git.scm
glob.scm
gnu-maintenance.scm
gnupg.scm
grafts.scm
graph.js
graph.scm
hg-download.scm
http-client.scm
i18n.scm
inferior.scm
ipfs.scm
licenses.scm
lint.scm
man-db.scm
memoization.scm
modules.scm
monad-repl.scm
monads.scm
nar.scm
narinfo.scm
openpgp.scm
packages.scm
pki.scm
profiles.scm
profiling.scm
progress.scm
quirks.scm
records.scm
remote.scm
repl.scm
scripts.scm
search-paths.scm
self.scm
serialization.scm
sets.scm
ssh.scm
status.scm
store.scm
substitutes.scm substitutes: Properly construct URLs. 2021-07-16 19:36:11 +02:00
svn-download.scm
swh.scm
tests.scm
transformations.scm
ui.scm
upstream.scm
utils.scm utils: Do not request block buffering in pretty-print-table. 2021-07-21 17:42:30 -04:00
workers.scm