(address . bug-guix@gnu.org)
Hi,
I’ve noticed that `guix environment` can be very very slow for some packages.
Whereas usually a call like
time guix environment --ad-hoc <package> -- true
takes 600ms to 1.5s, it takes 8.4s for the package r-learnr on my Ryzen 5 3600
with NVMe SSD, 32G of RAM and a warm cache. This seems to accumulate when
trying to install multiple unrelated “slow” packages into the same environment,
i.e. jupyter (2.9s) + r-rlearnr (8.4s) + r-stm (2.9s) = 12.1s. What these
packages seem to have in common is a deep chain of propagated inputs.
And in fact, if I create artificial test packages where test-999 propagates
test-998, test-998→test-997 and so on the command above takes 1m 9s. A single
package propagating 999 packages takes 4.5s.
Instrumenting guix-environment’s with-store call with statprof I see a lot of
time is spent in the garbage collector:
Total time: 24.672604202 seconds (19.431122691 seconds in GC)
./pre-inst-env guix environment --ad-hoc r-learnr -- true 25,18s user 0,24s system 308% cpu 8,248 total
More specifically in an anonymous function and reap-pipes, which is a gc hook,
I believe:
% cumulative self
time seconds seconds calls procedure
33.41 14.49 8.24 anon #xbb8480
27.95 6.90 6.90 ice-9/popen.scm:145:0:reap-pipes
4.37 1.08 1.08 anon #xbbdcd8
3.28 0.86 0.81 ice-9/vlist.scm:539:0:vhash-assq
2.40 2.37 0.59 guix/grafts.scm:202:22
Not sure if that helps tracking the issue down though.
Cheers,
Lars
PS: Here’s `guix describe`:
Generation 1 Jun 03 2020 10:38:17 (current)
guix 9ab2790
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: master
commit: 9ab2790e2acf872c0f2cf41ec180de80d1eee3f3
zpid bab33c1
repository URL: https://github.com/leibniz-psychology/guix-zpid.git
branch: master
commit: bab33c19e0f0304d7aa82751653eb85d8cad8c0a
-----BEGIN PGP SIGNATURE-----
iQGzBAABCgAdFiEEyk+M9DfXR4/aBV/UQhN3ARo3hEYFAl7Yr3EACgkQQhN3ARo3
hEZvXgwAortYSBFszMEb4QyWF4EtfFQ8GMqhj9Av2r72HXGKtqnu+ZoY4VLK3eZx
Ntt0HIn50+BLQ/0TkWRCy5znN5t4NPVg7Qdn46DlCM9rOL6kkr61xrVGmmi5yzva
rir2cUIgLFHEwHQPP3AoKZAVrkzIoKxHhHPzFGyLZPglf0MER82X30pj5Yq14h3r
WlA+u6ktDsnHGYc9dD25mTSvuhITT8NAp4viNBC328FEZ+b/ct2/lpeln/khZYmU
HSG+bYI9R+fwg6isCPtKuZB+B7T5703KOyzvwbiasnCToMr1/PCV91z3Arba8MsC
eYZUmv8FfsrENz7iFs7le9J3csH39bhrZn7DNADwSt3HTILGHrrbEikgD3R3Lyvq
RcYRA9NZLZHSRdYntPbktFvK4i4H7UIBHx/b2MmiGAgrhqYvAPPFgTU8D0Y/w4Rd
rq6uXckgl3WlGnbmsVO7CEefanSv3RwWg7+m2LJ4sziXpT5fmyp+qru/l58yCUsZ
MiyfjkrB
=lFqp
-----END PGP SIGNATURE-----