[Nix-dev] Why Nix-0.16 so hungry on ressources (mem + cpu) ?

Paul Dufresne dufresnep at gmail.com
Wed Oct 26 23:47:49 CEST 2011


Having problems downloading the MANIFEST.bz2 file on nixpkgs-unstable
with my 56k modem (I always get curl error 18, between 0% and 50% of
the 19Mb file), I downloaded on a computer with high-speed Internet,
along the nixexprs.tar.bz2, on my usb key in a directory called
MyChannel.

I then used nix-channel ---add [directory-path]
followed by nix-channel --update.

Things seems to have got fine.

But seeing that nix-env -qa '*'
or nix-env -i hello
look to take much than one or two minutes to give any results, I
killall nix-env and rebegin:

sudo nix-env -i -v hello
Well I guess the -v ... which seems to show me what it is doing.

It seems that it need to evaluate all the nix expressions in the
unstable packages.While doing this, top reports that it eats about 72%
of my memory (256Mb Physical + 256Mb virtual).

Finally, a bit later, it will die unable to fork the process:
...
evaluating file `/home/paul/.nix-defexpr/channels/MyChannel/pkgs/shells/zsh'
evaluating file
`/home/paul/.nix-defexpr/channels/MyChannel/pkgs/misc/emulators/zsnes'
evaluating file
`/home/paul/.nix-defexpr/channels/MyChannel/pkgs/tools/compression/zsync'
evaluating file
`/home/paul/.nix-defexpr/channels/MyChannel/pkgs/applications/audio/zynaddsubfx'
evaluating file
`/home/paul/.nix-defexpr/channels/MyChannel/pkgs/development/libraries/zziplib'
...
evaluating file
`/home/paul/.nix-defexpr/channels/MyChannel/pkgs/development/tools/misc/patchelf'
evaluating file
`/home/paul/.nix-defexpr/channels/MyChannel/pkgs/development/libraries/pcre'
evaluating file
`/home/paul/.nix-defexpr/channels/MyChannel/pkgs/development/libraries/libsigsegv'
evaluating file
`/home/paul/.nix-defexpr/channels/MyChannel/pkgs/applications/editors/ed'
evaluating file
`/home/paul/.nix-defexpr/channels/MyChannel/pkgs/build-support/fetchurl/mirrors.nix'
error: unable to fork: Cannot allocate memory
paul at Arcturus:~$

It even seems to reevaluate all the Nix_Expressions each time I try.

Is it just with me?
If no, why it have to do that... I thought it had some kind of database.
That it would not have to evaluate say... haskell installers to install hello.


More information about the nix-dev mailing list