Hello,

There’s good stuff coming from the recent ‘rust-team’ branch merge
(congrats, Hilton!!) beyond Rust itself.

First, 16% fewer packages:

--8<---------------cut here---------------start------------->8---
$ guix package -A |wc -l  # before
35132
$ ./pre-inst-env guix package -A |wc -l  # after
29318
--8<---------------cut here---------------end--------------->8---

That makes many things faster: building the package cache, traversing
the list of packages, evaluations on ci.guix and the Data Service, etc.

Second, almost 10x speedup on reverse dependency lookup:

--8<---------------cut here---------------start------------->8---
$ time guix refresh -l cairo >/dev/null  # before

real    0m31.776s
user    0m41.822s
sys     0m0.430s
$ time ./pre-inst-env guix refresh -l cairo >/dev/null  # after

real    0m4.059s
user    0m5.179s
sys     0m0.236s
--8<---------------cut here---------------end--------------->8---

This is due to the fact that ‘cargo-build-system’ would previously
compute the closure of the given package’s #:cargo-inputs, which
involved traversing the package graph.

There may be more similar effects.

This is a great example of how the structure of the package graph and
the amount of computation needed for each node can radically affect
performance.

Thanks,
Ludo’.

Reply via email to