A modern, delicious implementation of the Nix package manager, focused on correctness, usability, and growth — and committed to doing right by its community
Find a file
Eelco Dolstra a583a2bc59 Run the daemon worker on the same CPU as the client
On a system with multiple CPUs, running Nix operations through the
daemon is significantly slower than "direct" mode:

$ NIX_REMOTE= nix-instantiate '<nixos>' -A system
real    0m0.974s
user    0m0.875s
sys     0m0.088s

$ NIX_REMOTE=daemon nix-instantiate '<nixos>' -A system
real    0m2.118s
user    0m1.463s
sys     0m0.218s

The main reason seems to be that the client and the worker get moved
to a different CPU after every call to the worker.  This patch adds a
hack to lock them to the same CPU.  With this, the overhead of going
through the daemon is very small:

$ NIX_REMOTE=daemon nix-instantiate '<nixos>' -A system
real    0m1.074s
user    0m0.809s
sys     0m0.098s
2013-08-07 14:02:04 +02:00
corepkgs buildenv: remove special treatment of python files 2013-07-23 20:13:43 +02:00
doc Add hacking notes plus a script for running nix-shell 2013-07-19 16:51:31 +02:00
misc Rename nix-worker to nix-daemon 2012-10-03 17:59:23 -04:00
perl Don't keep "disabled" substituters running 2013-06-20 11:55:15 +02:00
scripts nix-shell: Don't disable Automake dependency tracking 2013-07-31 13:17:50 +02:00
src Run the daemon worker on the same CPU as the client 2013-08-07 14:02:04 +02:00
tests Let the ordering operators also work on strings 2013-08-02 18:53:02 +02:00
.gitignore Rename nix-worker to nix-daemon 2012-10-03 17:59:23 -04:00
AUTHORS
bootstrap.sh bootstrap: Simplify & make more robust. 2011-09-06 12:11:05 +00:00
build.nix Add an experimental nix-make file 2012-05-21 09:43:01 -04:00
configure.ac Run the daemon worker on the same CPU as the client 2013-08-07 14:02:04 +02:00
COPYING * Change this to LGPL to keep the government happy. 2006-04-25 16:41:06 +00:00
dev-shell Add hacking notes plus a script for running nix-shell 2013-07-19 16:51:31 +02:00
INSTALL
Makefile.am Garbage collector: Don't follow symlinks arbitrarily 2013-07-12 14:03:36 +02:00
nix.spec.in Add gzip support for channel unpacking 2013-07-12 11:29:37 +02:00
README * Install documentation in $(docdir) (i.e. share/doc/nix). 2008-11-19 13:19:09 +00:00
release.nix Build Fedora 18 RPMs 2013-05-08 14:41:35 +02:00
substitute.mk Prevent config.h from being clobbered 2013-03-08 01:27:04 +01:00
version Bump version 2013-06-17 15:39:45 +02:00

Nix is a purely functional package manager.  For installation and
usage instructions, please read the manual, which can be found in
`docs/manual/manual.html', and additionally at the Nix website at
<http://nixos.org/>.


Acknowledgments

This product includes software developed by the OpenSSL Project for
use in the OpenSSL Toolkit (http://www.OpenSSL.org/).