From: "Ludovic Courtès" <ludo@gnu.org>
To: Guix-devel <Guix-devel@gnu.org>
Subject: Performance improvements
Date: Mon, 14 Oct 2019 23:39:28 +0200 [thread overview]
Message-ID: <87r23fknvz.fsf@gnu.org> (raw)
Hello Guix!
I just wanted to share that recent commits have improved the performance
of ‘package-derivation’ and related operations quite a bit:
8f417ed280 gnu: commencement: Further optimize the package object graph.
f618134e4c build-system/gnu: 'package-with-explicit-inputs' uses 'package-mapping'.
dab669e075 gnu: ld-wrapper: Memoize.
099dbc4fd3 gnu: Improve memoization of 'package-with-bootstrap-guile'.
99b73d0f0c gnu: commencement: Reduce the graph of package objects.
9a45a24f7f gnu: Remove unnecessary uses of 'package-with-bootstrap-guile'.
What these commits do is that they greatly reduce the graph of <package>
objects built in ‘commencement.scm’. As a result, there’s much less
work to do, less code to run, less stuff to memoize, all that. :-)
Before these changes, if you’d run, say:
guix graph -e '(@@ (gnu packages commencement) gnu-make-final)'
you’d see the <package> graph was huge and had a weird shape. Indeed,
many parts were duplicated as a consequence of graph rewriting. That’s
not news, but it became more visible with the reduced binary seed
boostrap, which adds quite a few nodes and edges.
The commit logs have more details, but the take-away is:
--8<---------------cut here---------------start------------->8---
$ time /var/guix/profiles/per-user/ludo/current-guix-109-link/bin/guix build libreoffice -nd
/gnu/store/7whsss0gn7h4dqvz627sq3i4cb1qlc1v-libreoffice-6.1.5.2.drv
real 0m3.238s
user 0m3.693s
sys 0m0.047s
$ time guix build libreoffice -nd
/gnu/store/8drmbhsrayr2j5lkvrwq37rg8g06hgsw-libreoffice-6.1.5.2.drv
real 0m2.142s
user 0m2.323s
sys 0m0.082s
$ guix describe
Generacio 110 Oct 14 2019 08:43:33 (nuna)
guix bd04fe8
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: master
commit: bd04fe878627a14533d908ccdf5b906050d6e0a4
--8<---------------cut here---------------end--------------->8---
I think we need to aim for 1s, but that’s already a good step.
Ludo’.
next reply other threads:[~2019-10-14 21:39 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-14 21:39 Ludovic Courtès [this message]
2019-10-15 6:35 ` Performance improvements Pierre Neidhardt
2019-10-15 7:24 ` Jan Nieuwenhuizen
2019-10-19 20:17 ` Ludovic Courtès
2019-10-15 8:21 ` Dimakakos Dimos
2019-10-15 18:21 ` Efraim Flashner
2019-10-19 20:17 ` Ludovic Courtès
2019-10-27 23:06 ` Ludovic Courtès
2019-10-28 7:44 ` Pierre Neidhardt
2019-10-28 7:56 ` Efraim Flashner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87r23fknvz.fsf@gnu.org \
--to=ludo@gnu.org \
--cc=Guix-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.