unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Performance improvements
@ 2019-10-14 21:39 Ludovic Courtès
  2019-10-15  6:35 ` Pierre Neidhardt
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Ludovic Courtès @ 2019-10-14 21:39 UTC (permalink / raw)
  To: Guix-devel

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’.

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2019-10-28  7:56 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-10-14 21:39 Performance improvements Ludovic Courtès
2019-10-15  6:35 ` 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

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).