Skip to content

Instantly share code, notes, and snippets.

@ConnorBaker
Last active December 6, 2024 08:15
Show Gist options
  • Select an option

  • Save ConnorBaker/faf10bd249b69248a53774012cb1486f to your computer and use it in GitHub Desktop.

Select an option

Save ConnorBaker/faf10bd249b69248a53774012cb1486f to your computer and use it in GitHub Desktop.

A note on the numbers

This was run on quiet system with an i9-13900K, 96 GB of DDR5 RAM, and several NVMe SSDs in a ZRAID0 with ZFS. Memory usage never required swapping with hyperfine running two warmups, ZFS ARC and L2ARC effectively cached everything, so IO was not a bottleneck. While it is unlikely there was any thermal throttling as this was largely single-core and temps stayed under 30 C, it is possible.

Additionally, I did not disable boost clocks, set affinity or priority for the process, or other optimizations which could have been done to reduce noise in the results.

They're presented without any liability or guarantee of accuracy, etc.

The workload used isn't representative of a typical Nix evaluation (essentially recursing over Nixpkgs to build a list of lists of attribute paths to all derivations which successfully evaluate), so the numbers aren't indicative of performance each build of Nix would see in practice.

Revisions used

  • Nix rev ab5a9cf2db31d3840a801385349b9d23deb29ecc
  • Nixpkgs rev e4666afa18982a52c4310380007ecd7ba43f1028

Results

Summary

As a reminder, by default evaluation will use the daemon on multi-user installs, will not set the store to read-only, and will perform GC. Here are the results of the benchmarks for each executable under these conditions (keep in mind nix-meson-O3-lto-no-gc was built without GC):

TODO: Why were the results so noisy?

  • nix-default:

    Benchmark 1: nix-daemon
      Time (mean ± σ):     11.694 s ±  0.275 s    [User: 9.886 s, System: 1.405 s]
      Range (min … max):   10.954 s … 12.020 s    10 runs
  • nix-meson-O3:

    Benchmark 1: nix-daemon
      Time (mean ± σ):     11.813 s ±  0.104 s    [User: 10.018 s, System: 1.392 s]
      Range (min … max):   11.670 s … 11.954 s    10 runs
  • nix-meson-O3-lto:

    Benchmark 1: nix-daemon
      Time (mean ± σ):     11.590 s ±  0.083 s    [User: 9.821 s, System: 1.369 s]
      Range (min … max):   11.469 s … 11.707 s    10 runs
  • nix-meson-O3-lto-no-gc:

    Benchmark 1: nix-daemon-no-gc
      Time (mean ± σ):      7.080 s ±  0.047 s    [User: 5.099 s, System: 1.598 s]
      Range (min … max):    7.027 s …  7.181 s    10 runs

Looking at the results of the benchmarks using the local store (so avoiding the daemon for file operations), with GC disabled, and with the read-only flag set, the following can be observed:

  • nix-default:

    Benchmark 8: nix-no-daemon-no-gc-read-only
      Time (mean ± σ):      6.963 s ±  0.048 s    [User: 5.214 s, System: 1.728 s]
      Range (min … max):    6.926 s …  7.065 s    10 runs
  • nix-meson-O3:

    Benchmark 8: nix-no-daemon-no-gc-read-only
      Time (mean ± σ):      6.958 s ±  0.058 s    [User: 5.235 s, System: 1.703 s]
      Range (min … max):    6.907 s …  7.076 s    10 runs
  • nix-meson-O3-lto:

    Benchmark 8: nix-no-daemon-no-gc-read-only
      Time (mean ± σ):      6.813 s ±  0.054 s    [User: 5.100 s, System: 1.694 s]
      Range (min … max):    6.775 s …  6.961 s    10 runs
  • nix-meson-O3-lto-no-gc:

    Benchmark 4: nix-no-daemon-no-gc-read-only
      Time (mean ± σ):      6.494 s ±  0.025 s    [User: 4.913 s, System: 1.564 s]
      Range (min … max):    6.466 s …  6.549 s    10 runs

As a reminder, by default evaluation will use the daemon on multi-user installs, will not set the store to read-only, and will perform GC.

Marginal differences.

It would be interested to explore PGO and post-link optimizations such as BOLT.

TODO: Add analysis for overhead involved in using the daemon/not passing --read-only as well as for GC.

nix-default

Nix as built with a fresh clone and nix build .#nix.

$ nix path-info -rSsh ./nix-default
/nix/store/19avl2s0rd4whz3b0n118qdrv6yr3b0g-xgcc-13.2.0-libgcc                             	 155.8 KiB	 155.8 KiB
/nix/store/503h8rdwzj12dh0fs1b6y643qm26vqsb-libunistring-1.1                               	   1.7 MiB	   1.7 MiB
/nix/store/ya4arqpf6vwbq4msi449314kqbhdb4l4-libidn2-2.3.7                                  	 352.7 KiB	   2.1 MiB
/nix/store/87848rvrg5c7jmplpi0iapvbxyj9kfid-glibc-2.39-52                                  	  28.7 MiB	  31.0 MiB
/nix/store/b5248mzca3qjhjvck1vw3n6gg5mdhkz8-aws-c-common-0.9.17                            	   1.0 MiB	  32.0 MiB
/nix/store/0wb2jfh9zcdhh2maw76vrcd69yn56hw2-aws-c-sdkutils-0.1.16                          	 150.4 KiB	  32.1 MiB
/nix/store/dqrip0sx49kz9l6p8smq09aghas49s3b-gcc-13.2.0-libgcc                              	 155.8 KiB	 155.8 KiB
/nix/store/40yjzm7r5ki59kkk9423dnwbm86x7pyd-gcc-13.2.0-lib                                 	   8.7 MiB	  39.8 MiB
/nix/store/0wq0r67l1lixwiwb7zyjbpl3yff5nbxw-boehm-gc-8.2.6                                 	 308.9 KiB	  40.1 MiB
/nix/store/2k9k3q1vk8z6w7743k6nb22vnb05xv06-zlib-1.3.1                                     	 125.2 KiB	  31.1 MiB
/nix/store/2vdxsvrjrf1bgznbb9wga1rshpxc658a-publicsuffix-list-0-unstable-2024-01-07        	 302.5 KiB	 302.5 KiB
/nix/store/65ysp6n926dmcxdsg88q4qkw1kid7dih-attr-2.5.2                                     	  90.6 KiB	  31.1 MiB
/nix/store/39jg2qg6jlfm4hdc8j61d09skxg4gfw0-acl-2.3.2                                      	 125.2 KiB	  31.2 MiB
/nix/store/q46sbq9pgf58xb8zx5vlkbv96kidglxc-openssl-3.0.14                                 	   6.2 MiB	  37.2 MiB
/nix/store/8ivnsqp0wb8pna7rm31csdcn5aykdkqh-s2n-tls-1.4.12                                 	   1.2 MiB	  38.4 MiB
/nix/store/dyxmqfpx08c2rhxg5kc83qa0qdxhzhfk-aws-c-cal-0.6.12                               	 143.1 KiB	  38.3 MiB
/nix/store/mldkgahcv5kg2kv19dc8zqmz5y702k01-aws-c-io-0.14.7                                	 604.5 KiB	  40.1 MiB
/nix/store/ydmbcr9ca5sdhvlx8icwvj454xvp6dd8-aws-checksums-0.1.18                           	  61.8 KiB	  32.0 MiB
/nix/store/5d4a4am9gb7ia79xfjcdbf2y3b9kwknn-aws-c-event-stream-0.4.2                       	 169.5 KiB	  40.3 MiB
/nix/store/96dj8i2gxxn31nw84r94h7bbfbg46rkw-pcre-8.45                                      	 513.3 KiB	  31.5 MiB
/nix/store/k52i6nkc80lxr7f2axdrvdp3cbnwxmk7-libgit2-20240516095848-lib                     	   1.5 MiB	  39.3 MiB
/nix/store/m5lk8pdk0sz0pkf3kjzk0j2b7gargzzx-aws-c-compression-0.2.18                       	  31.6 KiB	  32.0 MiB
/nix/store/5xvdvbb7vzyazmhw57yhwwch8kqwjfyk-aws-c-http-0.8.1                               	 601.5 KiB	  40.7 MiB
/nix/store/xhd47fvyzk5gds3d6bnnvhfpqd9hrsvp-aws-c-auth-0.7.18                              	 362.8 KiB	  41.2 MiB
/nix/store/bdk3lnfjx46vsh5php2wbxsr9mriyhqb-aws-c-s3-0.5.7                                 	 331.7 KiB	  41.6 MiB
/nix/store/rpj7hvnzrm4kh45bllm7fgncwmshlhiq-aws-c-mqtt-0.10.4                              	 464.4 KiB	  41.2 MiB
/nix/store/c46xzl45zg6225nxy780ccm5bzm9bdc4-aws-crt-cpp-0.26.8                             	 941.5 KiB	  52.0 MiB
/nix/store/by2v5cgvm6kkjjfv52fz7vajwgmcfdga-brotli-1.1.0-lib                               	 901.4 KiB	  31.8 MiB
/nix/store/g45c2banpvki32fjydbx3wclgcphmsbs-libpsl-0.21.5                                  	  79.6 KiB	  31.3 MiB
/nix/store/kcc6cnkqm8if32y6hwh9ixpwxba15hkq-nghttp2-1.61.0-lib                             	 219.0 KiB	  31.2 MiB
/nix/store/yh9n3w67ivhxkzx9m58cswbaf8nag436-zstd-1.5.6                                     	   1.1 MiB	  40.9 MiB
/nix/store/ayndm66jniwbm76kprjjng06r4b7ypbw-keyutils-1.6.3-lib                             	  41.6 KiB	  31.0 MiB
/nix/store/wckka8fxv4h5hp74cbkhaw3fw7kbvcs1-bash-5.2p26                                    	   1.5 MiB	  32.5 MiB
/nix/store/z5736fyn17s2mqql62rcznmj5yk5yx15-libkrb5-1.21.3                                 	   2.2 MiB	  34.8 MiB
/nix/store/zmczdj9cz73g8vfrqkv2hh5fv9achs7v-libssh2-1.11.0                                 	 309.8 KiB	  37.6 MiB
/nix/store/kw6idhj5b1pmwjg7rnyvrlhg5ffrn1vs-curl-8.7.1                                     	 874.1 KiB	  53.6 MiB
/nix/store/86b4h0x1i310gglrsjrk093l0g2h26pr-aws-sdk-cpp-1.11.318                           	   5.7 MiB	  65.4 MiB
/nix/store/f6afb4jw9g5f94ixw0jn6cl0ah4liy35-sqlite-3.45.3                                  	   1.5 MiB	  32.6 MiB
/nix/store/p66hqwsh90q1xdb6ss31105rr11s4z9v-busybox-static-x86_64-unknown-linux-musl-1.36.1	 212.0 KiB	 212.0 KiB
/nix/store/p8pfm2w0sapcyizn9rkgdpllywq05x5n-libseccomp-2.5.5-lib                           	 138.9 KiB	  31.1 MiB
/nix/store/8c9vyhad2gxlg4clvaa3zlikv7lsym3s-libsodium-1.0.19                               	 497.5 KiB	  31.5 MiB
/nix/store/j8qdcfmjnlqlxk14mh59vcwr6hbznj92-boost-1.81.0                                   	 153.8 KiB	  39.9 MiB
/nix/store/9g700djj7aqgr3fqq5ji9m8w3n5ip75s-xz-5.4.7                                       	 803.6 KiB	  31.8 MiB
/nix/store/ddzqsmrcpciq7rm4p70ynj3hi07w88kz-libxml2-2.12.7                                 	   1.5 MiB	  32.6 MiB
/nix/store/g0gx36d1l273mzhnz7jmq5vvjf6n9r70-bzip2-1.0.8                                    	  78.9 KiB	  31.0 MiB
/nix/store/mccadsxm3sgrcx2z0b9c8d5wgnlg7a3z-libarchive-3.7.4-lib                           	 887.7 KiB	  50.7 MiB
/nix/store/p95ba37n695180m4vjp4mn3j8vd156jr-libcpuid-0.6.5                                 	 259.2 KiB	  31.2 MiB
/nix/store/xf85qdkmmdfr6z2n2hqw5f1myzvywqhv-nix-util-2.26.0pre                             	   2.4 MiB	  54.8 MiB
/nix/store/m7l7q1jf7kdnzrsar3rissmyjrqsvyz3-nix-store-2.26.0pre                            	   5.6 MiB	  79.6 MiB
/nix/store/l2cwhsbrilykpg34yvq8xcinj79mhn00-nix-fetchers-2.26.0pre                         	   1.6 MiB	  83.1 MiB
/nix/store/y74xl6bwrfl4q80zjv37m08l4hn6h60q-nix-expr-2.26.0pre                             	   3.1 MiB	  86.5 MiB
/nix/store/8gvx0zvdc34zc2w39h104akj7kp783ab-nix-flake-2.26.0pre                            	   1.0 MiB	  87.5 MiB
/nix/store/ak4z28ld63pp1ivhypy07h1rcr7mz5da-nix-main-2.26.0pre                             	 421.4 KiB	  80.0 MiB
/nix/store/isqwk2fj3d87ykqkhgr1513jqlrkymr6-lowdown-1.1.0-lib                              	 275.5 KiB	  31.2 MiB
/nix/store/qcwlfkj0yggkfvv43y0bv7wyb35w1dh0-editline-1.17.1                                	  54.4 KiB	  31.0 MiB
/nix/store/plxnjc42di5g20as4p7jb0minm3ypqh8-nix-cmd-2.26.0pre                              	   1.1 MiB	  89.4 MiB
/nix/store/5mmk1z943xwcvrbbizswk5rrkika4nxr-nix-2.26.0pre20241206_ab5a9cf                  	   4.0 MiB	  93.3 MiB
/nix/store/dw4076zxh127ljh4mgfip9lri7gj341m-nix-manual-2.26.0pre20241206_ab5a9cf-man       	 457.6 KiB	 457.6 KiB
/nix/store/6nh1sjzin4kxhscjz3jsrg87k1711wp5-nix-2.26.0pre20241206_ab5a9cf                  	   2.4 KiB	  93.8 MiB
/etc/profiles/per-user/connorbaker/bin/hyperfine \
    --warmup 2 \
    --command-name nix-daemon \
        '/home/connorbaker/nix/nix-default/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store daemon \
        > /dev/null' \
    --command-name nix-daemon-no-gc \
        'GC_DONT_GC=1 /home/connorbaker/nix/nix-default/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store daemon \
        > /dev/null' \
    --command-name nix-daemon-read-only \
        '/home/connorbaker/nix/nix-default/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store daemon \
        --read-only \
        > /dev/null' \
    --command-name nix-daemon-no-gc-read-only \
        'GC_DONT_GC=1 /home/connorbaker/nix/nix-default/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store daemon \
        --read-only \
        > /dev/null' \
    --command-name nix-no-daemon \
        '/home/connorbaker/nix/nix-default/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store local \
        > /dev/null' \
    --command-name nix-no-daemon-read-only \
        '/home/connorbaker/nix/nix-default/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store local \
        --read-only \
        > /dev/null' \
    --command-name nix-no-daemon-no-gc \
        'GC_DONT_GC=1 /home/connorbaker/nix/nix-default/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store local \
        > /dev/null' \
    --command-name nix-no-daemon-no-gc-read-only \
        'GC_DONT_GC=1 /home/connorbaker/nix/nix-default/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store local \
        --read-only \
        > /dev/null'

Benchmark 1: nix-daemon
  Time (mean ± σ):     11.694 s ±  0.275 s    [User: 9.886 s, System: 1.405 s]
  Range (min … max):   10.954 s … 12.020 s    10 runs
 
  Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.
 
Benchmark 2: nix-daemon-no-gc
  Time (mean ± σ):      7.528 s ±  0.060 s    [User: 5.402 s, System: 1.743 s]
  Range (min … max):    7.473 s …  7.680 s    10 runs
 
Benchmark 3: nix-daemon-read-only
  Time (mean ± σ):     11.099 s ±  0.294 s    [User: 9.741 s, System: 1.328 s]
  Range (min … max):   10.287 s … 11.335 s    10 runs
 
  Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.
 
Benchmark 4: nix-daemon-no-gc-read-only
  Time (mean ± σ):      6.950 s ±  0.047 s    [User: 5.211 s, System: 1.719 s]
  Range (min … max):    6.914 s …  7.078 s    10 runs
 
  Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.
 
Benchmark 5: nix-no-daemon
  Time (mean ± σ):     11.448 s ±  0.117 s    [User: 9.960 s, System: 1.457 s]
  Range (min … max):   11.337 s … 11.671 s    10 runs
 
Benchmark 6: nix-no-daemon-read-only
  Time (mean ± σ):     11.143 s ±  0.082 s    [User: 9.788 s, System: 1.324 s]
  Range (min … max):   11.038 s … 11.283 s    10 runs
 
Benchmark 7: nix-no-daemon-no-gc
  Time (mean ± σ):      7.203 s ±  0.039 s    [User: 5.358 s, System: 1.824 s]
  Range (min … max):    7.173 s …  7.307 s    10 runs
 
Benchmark 8: nix-no-daemon-no-gc-read-only
  Time (mean ± σ):      6.963 s ±  0.048 s    [User: 5.214 s, System: 1.728 s]
  Range (min … max):    6.926 s …  7.065 s    10 runs
 
Summary
  nix-daemon-no-gc-read-only ran
    1.00 ± 0.01 times faster than nix-no-daemon-no-gc-read-only
    1.04 ± 0.01 times faster than nix-no-daemon-no-gc
    1.08 ± 0.01 times faster than nix-daemon-no-gc
    1.60 ± 0.04 times faster than nix-daemon-read-only
    1.60 ± 0.02 times faster than nix-no-daemon-read-only
    1.65 ± 0.02 times faster than nix-no-daemon
    1.68 ± 0.04 times faster than nix-daemon

nix-meson-O3

Same as nix-default, but removed the line in build-utils-meson/common/meson.build which adds -O3 for CPP (per Meson build system's printed warning to use the optimization option instead) and changed default_options in each meson.build file from 'optimization=2' to 'optimization=3'.

NOTE: The closure is 0.8 MB smaller than nix-default.

$ nix path-info -rSsh ./nix-meson-O3
/nix/store/19avl2s0rd4whz3b0n118qdrv6yr3b0g-xgcc-13.2.0-libgcc                             	 155.8 KiB	 155.8 KiB
/nix/store/503h8rdwzj12dh0fs1b6y643qm26vqsb-libunistring-1.1                               	   1.7 MiB	   1.7 MiB
/nix/store/ya4arqpf6vwbq4msi449314kqbhdb4l4-libidn2-2.3.7                                  	 352.7 KiB	   2.1 MiB
/nix/store/87848rvrg5c7jmplpi0iapvbxyj9kfid-glibc-2.39-52                                  	  28.7 MiB	  31.0 MiB
/nix/store/b5248mzca3qjhjvck1vw3n6gg5mdhkz8-aws-c-common-0.9.17                            	   1.0 MiB	  32.0 MiB
/nix/store/0wb2jfh9zcdhh2maw76vrcd69yn56hw2-aws-c-sdkutils-0.1.16                          	 150.4 KiB	  32.1 MiB
/nix/store/dqrip0sx49kz9l6p8smq09aghas49s3b-gcc-13.2.0-libgcc                              	 155.8 KiB	 155.8 KiB
/nix/store/40yjzm7r5ki59kkk9423dnwbm86x7pyd-gcc-13.2.0-lib                                 	   8.7 MiB	  39.8 MiB
/nix/store/0wq0r67l1lixwiwb7zyjbpl3yff5nbxw-boehm-gc-8.2.6                                 	 308.9 KiB	  40.1 MiB
/nix/store/8c9vyhad2gxlg4clvaa3zlikv7lsym3s-libsodium-1.0.19                               	 497.5 KiB	  31.5 MiB
/nix/store/by2v5cgvm6kkjjfv52fz7vajwgmcfdga-brotli-1.1.0-lib                               	 901.4 KiB	  31.8 MiB
/nix/store/j8qdcfmjnlqlxk14mh59vcwr6hbznj92-boost-1.81.0                                   	 153.8 KiB	  39.9 MiB
/nix/store/2k9k3q1vk8z6w7743k6nb22vnb05xv06-zlib-1.3.1                                     	 125.2 KiB	  31.1 MiB
/nix/store/65ysp6n926dmcxdsg88q4qkw1kid7dih-attr-2.5.2                                     	  90.6 KiB	  31.1 MiB
/nix/store/39jg2qg6jlfm4hdc8j61d09skxg4gfw0-acl-2.3.2                                      	 125.2 KiB	  31.2 MiB
/nix/store/9g700djj7aqgr3fqq5ji9m8w3n5ip75s-xz-5.4.7                                       	 803.6 KiB	  31.8 MiB
/nix/store/ddzqsmrcpciq7rm4p70ynj3hi07w88kz-libxml2-2.12.7                                 	   1.5 MiB	  32.6 MiB
/nix/store/g0gx36d1l273mzhnz7jmq5vvjf6n9r70-bzip2-1.0.8                                    	  78.9 KiB	  31.0 MiB
/nix/store/q46sbq9pgf58xb8zx5vlkbv96kidglxc-openssl-3.0.14                                 	   6.2 MiB	  37.2 MiB
/nix/store/yh9n3w67ivhxkzx9m58cswbaf8nag436-zstd-1.5.6                                     	   1.1 MiB	  40.9 MiB
/nix/store/mccadsxm3sgrcx2z0b9c8d5wgnlg7a3z-libarchive-3.7.4-lib                           	 887.7 KiB	  50.7 MiB
/nix/store/p95ba37n695180m4vjp4mn3j8vd156jr-libcpuid-0.6.5                                 	 259.2 KiB	  31.2 MiB
/nix/store/bjbcj29qj83cp3znzih3w0hxa5lpf9zn-nix-util-2.26.0pre                             	   2.3 MiB	  54.7 MiB
/nix/store/8ivnsqp0wb8pna7rm31csdcn5aykdkqh-s2n-tls-1.4.12                                 	   1.2 MiB	  38.4 MiB
/nix/store/dyxmqfpx08c2rhxg5kc83qa0qdxhzhfk-aws-c-cal-0.6.12                               	 143.1 KiB	  38.3 MiB
/nix/store/mldkgahcv5kg2kv19dc8zqmz5y702k01-aws-c-io-0.14.7                                	 604.5 KiB	  40.1 MiB
/nix/store/ydmbcr9ca5sdhvlx8icwvj454xvp6dd8-aws-checksums-0.1.18                           	  61.8 KiB	  32.0 MiB
/nix/store/5d4a4am9gb7ia79xfjcdbf2y3b9kwknn-aws-c-event-stream-0.4.2                       	 169.5 KiB	  40.3 MiB
/nix/store/m5lk8pdk0sz0pkf3kjzk0j2b7gargzzx-aws-c-compression-0.2.18                       	  31.6 KiB	  32.0 MiB
/nix/store/5xvdvbb7vzyazmhw57yhwwch8kqwjfyk-aws-c-http-0.8.1                               	 601.5 KiB	  40.7 MiB
/nix/store/xhd47fvyzk5gds3d6bnnvhfpqd9hrsvp-aws-c-auth-0.7.18                              	 362.8 KiB	  41.2 MiB
/nix/store/bdk3lnfjx46vsh5php2wbxsr9mriyhqb-aws-c-s3-0.5.7                                 	 331.7 KiB	  41.6 MiB
/nix/store/rpj7hvnzrm4kh45bllm7fgncwmshlhiq-aws-c-mqtt-0.10.4                              	 464.4 KiB	  41.2 MiB
/nix/store/c46xzl45zg6225nxy780ccm5bzm9bdc4-aws-crt-cpp-0.26.8                             	 941.5 KiB	  52.0 MiB
/nix/store/2vdxsvrjrf1bgznbb9wga1rshpxc658a-publicsuffix-list-0-unstable-2024-01-07        	 302.5 KiB	 302.5 KiB
/nix/store/g45c2banpvki32fjydbx3wclgcphmsbs-libpsl-0.21.5                                  	  79.6 KiB	  31.3 MiB
/nix/store/kcc6cnkqm8if32y6hwh9ixpwxba15hkq-nghttp2-1.61.0-lib                             	 219.0 KiB	  31.2 MiB
/nix/store/ayndm66jniwbm76kprjjng06r4b7ypbw-keyutils-1.6.3-lib                             	  41.6 KiB	  31.0 MiB
/nix/store/wckka8fxv4h5hp74cbkhaw3fw7kbvcs1-bash-5.2p26                                    	   1.5 MiB	  32.5 MiB
/nix/store/z5736fyn17s2mqql62rcznmj5yk5yx15-libkrb5-1.21.3                                 	   2.2 MiB	  34.8 MiB
/nix/store/zmczdj9cz73g8vfrqkv2hh5fv9achs7v-libssh2-1.11.0                                 	 309.8 KiB	  37.6 MiB
/nix/store/kw6idhj5b1pmwjg7rnyvrlhg5ffrn1vs-curl-8.7.1                                     	 874.1 KiB	  53.6 MiB
/nix/store/86b4h0x1i310gglrsjrk093l0g2h26pr-aws-sdk-cpp-1.11.318                           	   5.7 MiB	  65.4 MiB
/nix/store/f6afb4jw9g5f94ixw0jn6cl0ah4liy35-sqlite-3.45.3                                  	   1.5 MiB	  32.6 MiB
/nix/store/p66hqwsh90q1xdb6ss31105rr11s4z9v-busybox-static-x86_64-unknown-linux-musl-1.36.1	 212.0 KiB	 212.0 KiB
/nix/store/p8pfm2w0sapcyizn9rkgdpllywq05x5n-libseccomp-2.5.5-lib                           	 138.9 KiB	  31.1 MiB
/nix/store/kv6isda7njzh2885xb57rp5cci700hcj-nix-store-2.26.0pre                            	   5.4 MiB	  79.1 MiB
/nix/store/3j0p06dbkisvlm583rdlhwpq9i0nfg40-nix-main-2.26.0pre                             	 390.7 KiB	  79.5 MiB
/nix/store/96dj8i2gxxn31nw84r94h7bbfbg46rkw-pcre-8.45                                      	 513.3 KiB	  31.5 MiB
/nix/store/k52i6nkc80lxr7f2axdrvdp3cbnwxmk7-libgit2-20240516095848-lib                     	   1.5 MiB	  39.3 MiB
/nix/store/dhl5cx9szy9rsvxjpyhb9qq161jqwmlr-nix-fetchers-2.26.0pre                         	   1.5 MiB	  82.7 MiB
/nix/store/rqpp6gss5hv7cina9sj8mxlbma88d863-nix-expr-2.26.0pre                             	   3.0 MiB	  85.9 MiB
/nix/store/d2xnj8i0aba6ycl9q8jk32rvis7c6h9f-nix-flake-2.26.0pre                            	   1.0 MiB	  86.9 MiB
/nix/store/isqwk2fj3d87ykqkhgr1513jqlrkymr6-lowdown-1.1.0-lib                              	 275.5 KiB	  31.2 MiB
/nix/store/qcwlfkj0yggkfvv43y0bv7wyb35w1dh0-editline-1.17.1                                	  54.4 KiB	  31.0 MiB
/nix/store/90hq8c88v2lzgbhv2ipknp9hwq4i2wrk-nix-cmd-2.26.0pre                              	   1.1 MiB	  88.7 MiB
/nix/store/29dazc548gzxghmb46xyy9qs107afmg0-nix-2.26.0pre20241206_dirty                    	   3.8 MiB	  92.5 MiB
/nix/store/dzhpqigzqbh7h5z5w2bzkdmh7wnz430p-nix-manual-2.26.0pre20241206_dirty-man         	 457.6 KiB	 457.6 KiB
/nix/store/4qs97rj5hzw3mmhbsbqznwxh9id9h5aq-nix-2.26.0pre20241206_dirty                    	   2.4 KiB	  93.0 MiB
/etc/profiles/per-user/connorbaker/bin/hyperfine \
    --warmup 2 \
    --command-name nix-daemon \
        '/home/connorbaker/nix/nix-meson-O3/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store daemon \
        > /dev/null' \
    --command-name nix-daemon-no-gc \
        'GC_DONT_GC=1 /home/connorbaker/nix/nix-meson-O3/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store daemon \
        > /dev/null' \
    --command-name nix-daemon-read-only \
        '/home/connorbaker/nix/nix-meson-O3/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store daemon \
        --read-only \
        > /dev/null' \
    --command-name nix-daemon-no-gc-read-only \
        'GC_DONT_GC=1 /home/connorbaker/nix/nix-meson-O3/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store daemon \
        --read-only \
        > /dev/null' \
    --command-name nix-no-daemon \
        '/home/connorbaker/nix/nix-meson-O3/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store local \
        > /dev/null' \
    --command-name nix-no-daemon-read-only \
        '/home/connorbaker/nix/nix-meson-O3/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store local \
        --read-only \
        > /dev/null' \
    --command-name nix-no-daemon-no-gc \
        'GC_DONT_GC=1 /home/connorbaker/nix/nix-meson-O3/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store local \
        > /dev/null' \
    --command-name nix-no-daemon-no-gc-read-only \
        'GC_DONT_GC=1 /home/connorbaker/nix/nix-meson-O3/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store local \
        --read-only \
        > /dev/null'

Benchmark 1: nix-daemon
  Time (mean ± σ):     11.813 s ±  0.104 s    [User: 10.018 s, System: 1.392 s]
  Range (min … max):   11.670 s … 11.954 s    10 runs
 
Benchmark 2: nix-daemon-no-gc
  Time (mean ± σ):      7.594 s ±  0.106 s    [User: 5.464 s, System: 1.743 s]
  Range (min … max):    7.483 s …  7.823 s    10 runs
 
Benchmark 3: nix-daemon-read-only
  Time (mean ± σ):     11.136 s ±  0.063 s    [User: 9.765 s, System: 1.341 s]
  Range (min … max):   11.063 s … 11.242 s    10 runs
 
Benchmark 4: nix-daemon-no-gc-read-only
  Time (mean ± σ):      6.967 s ±  0.057 s    [User: 5.241 s, System: 1.706 s]
  Range (min … max):    6.924 s …  7.105 s    10 runs
 
Benchmark 5: nix-no-daemon
  Time (mean ± σ):     11.408 s ±  0.065 s    [User: 9.929 s, System: 1.447 s]
  Range (min … max):   11.314 s … 11.489 s    10 runs
 
Benchmark 6: nix-no-daemon-read-only
  Time (mean ± σ):     11.200 s ±  0.081 s    [User: 9.844 s, System: 1.325 s]
  Range (min … max):   11.098 s … 11.356 s    10 runs
 
Benchmark 7: nix-no-daemon-no-gc
  Time (mean ± σ):      7.192 s ±  0.051 s    [User: 5.356 s, System: 1.816 s]
  Range (min … max):    7.160 s …  7.334 s    10 runs
 
Benchmark 8: nix-no-daemon-no-gc-read-only
  Time (mean ± σ):      6.958 s ±  0.058 s    [User: 5.235 s, System: 1.703 s]
  Range (min … max):    6.907 s …  7.076 s    10 runs
 
Summary
  nix-no-daemon-no-gc-read-only ran
    1.00 ± 0.01 times faster than nix-daemon-no-gc-read-only
    1.03 ± 0.01 times faster than nix-no-daemon-no-gc
    1.09 ± 0.02 times faster than nix-daemon-no-gc
    1.60 ± 0.02 times faster than nix-daemon-read-only
    1.61 ± 0.02 times faster than nix-no-daemon-read-only
    1.64 ± 0.02 times faster than nix-no-daemon
    1.70 ± 0.02 times faster than nix-daemon

nix-meson-O3-lto

Same as nix-meson-O3 but also changed default_options in each meson.build file to include 'b_lto=true'.

NOTE: the closure is 4.7 MB smaller than nix-meson-O3.

$ nix path-info -rSsh ./nix-meson-O3-lto
/nix/store/19avl2s0rd4whz3b0n118qdrv6yr3b0g-xgcc-13.2.0-libgcc                             	 155.8 KiB	 155.8 KiB
/nix/store/503h8rdwzj12dh0fs1b6y643qm26vqsb-libunistring-1.1                               	   1.7 MiB	   1.7 MiB
/nix/store/ya4arqpf6vwbq4msi449314kqbhdb4l4-libidn2-2.3.7                                  	 352.7 KiB	   2.1 MiB
/nix/store/87848rvrg5c7jmplpi0iapvbxyj9kfid-glibc-2.39-52                                  	  28.7 MiB	  31.0 MiB
/nix/store/b5248mzca3qjhjvck1vw3n6gg5mdhkz8-aws-c-common-0.9.17                            	   1.0 MiB	  32.0 MiB
/nix/store/0wb2jfh9zcdhh2maw76vrcd69yn56hw2-aws-c-sdkutils-0.1.16                          	 150.4 KiB	  32.1 MiB
/nix/store/dqrip0sx49kz9l6p8smq09aghas49s3b-gcc-13.2.0-libgcc                              	 155.8 KiB	 155.8 KiB
/nix/store/40yjzm7r5ki59kkk9423dnwbm86x7pyd-gcc-13.2.0-lib                                 	   8.7 MiB	  39.8 MiB
/nix/store/0wq0r67l1lixwiwb7zyjbpl3yff5nbxw-boehm-gc-8.2.6                                 	 308.9 KiB	  40.1 MiB
/nix/store/8c9vyhad2gxlg4clvaa3zlikv7lsym3s-libsodium-1.0.19                               	 497.5 KiB	  31.5 MiB
/nix/store/by2v5cgvm6kkjjfv52fz7vajwgmcfdga-brotli-1.1.0-lib                               	 901.4 KiB	  31.8 MiB
/nix/store/j8qdcfmjnlqlxk14mh59vcwr6hbznj92-boost-1.81.0                                   	 153.8 KiB	  39.9 MiB
/nix/store/2k9k3q1vk8z6w7743k6nb22vnb05xv06-zlib-1.3.1                                     	 125.2 KiB	  31.1 MiB
/nix/store/65ysp6n926dmcxdsg88q4qkw1kid7dih-attr-2.5.2                                     	  90.6 KiB	  31.1 MiB
/nix/store/39jg2qg6jlfm4hdc8j61d09skxg4gfw0-acl-2.3.2                                      	 125.2 KiB	  31.2 MiB
/nix/store/9g700djj7aqgr3fqq5ji9m8w3n5ip75s-xz-5.4.7                                       	 803.6 KiB	  31.8 MiB
/nix/store/ddzqsmrcpciq7rm4p70ynj3hi07w88kz-libxml2-2.12.7                                 	   1.5 MiB	  32.6 MiB
/nix/store/g0gx36d1l273mzhnz7jmq5vvjf6n9r70-bzip2-1.0.8                                    	  78.9 KiB	  31.0 MiB
/nix/store/q46sbq9pgf58xb8zx5vlkbv96kidglxc-openssl-3.0.14                                 	   6.2 MiB	  37.2 MiB
/nix/store/yh9n3w67ivhxkzx9m58cswbaf8nag436-zstd-1.5.6                                     	   1.1 MiB	  40.9 MiB
/nix/store/mccadsxm3sgrcx2z0b9c8d5wgnlg7a3z-libarchive-3.7.4-lib                           	 887.7 KiB	  50.7 MiB
/nix/store/p95ba37n695180m4vjp4mn3j8vd156jr-libcpuid-0.6.5                                 	 259.2 KiB	  31.2 MiB
/nix/store/2n4rl8pzprvj1g3h4k8qpzndfvgdh7ld-nix-util-2.26.0pre                             	   1.6 MiB	  54.1 MiB
/nix/store/8ivnsqp0wb8pna7rm31csdcn5aykdkqh-s2n-tls-1.4.12                                 	   1.2 MiB	  38.4 MiB
/nix/store/dyxmqfpx08c2rhxg5kc83qa0qdxhzhfk-aws-c-cal-0.6.12                               	 143.1 KiB	  38.3 MiB
/nix/store/mldkgahcv5kg2kv19dc8zqmz5y702k01-aws-c-io-0.14.7                                	 604.5 KiB	  40.1 MiB
/nix/store/ydmbcr9ca5sdhvlx8icwvj454xvp6dd8-aws-checksums-0.1.18                           	  61.8 KiB	  32.0 MiB
/nix/store/5d4a4am9gb7ia79xfjcdbf2y3b9kwknn-aws-c-event-stream-0.4.2                       	 169.5 KiB	  40.3 MiB
/nix/store/m5lk8pdk0sz0pkf3kjzk0j2b7gargzzx-aws-c-compression-0.2.18                       	  31.6 KiB	  32.0 MiB
/nix/store/5xvdvbb7vzyazmhw57yhwwch8kqwjfyk-aws-c-http-0.8.1                               	 601.5 KiB	  40.7 MiB
/nix/store/xhd47fvyzk5gds3d6bnnvhfpqd9hrsvp-aws-c-auth-0.7.18                              	 362.8 KiB	  41.2 MiB
/nix/store/bdk3lnfjx46vsh5php2wbxsr9mriyhqb-aws-c-s3-0.5.7                                 	 331.7 KiB	  41.6 MiB
/nix/store/rpj7hvnzrm4kh45bllm7fgncwmshlhiq-aws-c-mqtt-0.10.4                              	 464.4 KiB	  41.2 MiB
/nix/store/c46xzl45zg6225nxy780ccm5bzm9bdc4-aws-crt-cpp-0.26.8                             	 941.5 KiB	  52.0 MiB
/nix/store/2vdxsvrjrf1bgznbb9wga1rshpxc658a-publicsuffix-list-0-unstable-2024-01-07        	 302.5 KiB	 302.5 KiB
/nix/store/g45c2banpvki32fjydbx3wclgcphmsbs-libpsl-0.21.5                                  	  79.6 KiB	  31.3 MiB
/nix/store/kcc6cnkqm8if32y6hwh9ixpwxba15hkq-nghttp2-1.61.0-lib                             	 219.0 KiB	  31.2 MiB
/nix/store/ayndm66jniwbm76kprjjng06r4b7ypbw-keyutils-1.6.3-lib                             	  41.6 KiB	  31.0 MiB
/nix/store/wckka8fxv4h5hp74cbkhaw3fw7kbvcs1-bash-5.2p26                                    	   1.5 MiB	  32.5 MiB
/nix/store/z5736fyn17s2mqql62rcznmj5yk5yx15-libkrb5-1.21.3                                 	   2.2 MiB	  34.8 MiB
/nix/store/zmczdj9cz73g8vfrqkv2hh5fv9achs7v-libssh2-1.11.0                                 	 309.8 KiB	  37.6 MiB
/nix/store/kw6idhj5b1pmwjg7rnyvrlhg5ffrn1vs-curl-8.7.1                                     	 874.1 KiB	  53.6 MiB
/nix/store/86b4h0x1i310gglrsjrk093l0g2h26pr-aws-sdk-cpp-1.11.318                           	   5.7 MiB	  65.4 MiB
/nix/store/f6afb4jw9g5f94ixw0jn6cl0ah4liy35-sqlite-3.45.3                                  	   1.5 MiB	  32.6 MiB
/nix/store/p66hqwsh90q1xdb6ss31105rr11s4z9v-busybox-static-x86_64-unknown-linux-musl-1.36.1	 212.0 KiB	 212.0 KiB
/nix/store/p8pfm2w0sapcyizn9rkgdpllywq05x5n-libseccomp-2.5.5-lib                           	 138.9 KiB	  31.1 MiB
/nix/store/gc2v6khwsv07d4rm9i08ry14rzjw8853-nix-store-2.26.0pre                            	   3.9 MiB	  77.1 MiB
/nix/store/96dj8i2gxxn31nw84r94h7bbfbg46rkw-pcre-8.45                                      	 513.3 KiB	  31.5 MiB
/nix/store/k52i6nkc80lxr7f2axdrvdp3cbnwxmk7-libgit2-20240516095848-lib                     	   1.5 MiB	  39.3 MiB
/nix/store/1461pxkrrwhifkk3kl0ia285y62hb8wp-nix-fetchers-2.26.0pre                         	   1.1 MiB	  80.2 MiB
/nix/store/bms3zhc2fvfpz5x53jigvlbba7pmb57f-nix-main-2.26.0pre                             	 310.7 KiB	  77.4 MiB
/nix/store/gjcs4l64mjm6dg8pjbnkcpas55a164m8-nix-expr-2.26.0pre                             	   2.2 MiB	  82.7 MiB
/nix/store/qh1rkx7vnz1ybwxkjx2h57znljzgjcig-nix-flake-2.26.0pre                            	 814.1 KiB	  83.5 MiB
/nix/store/isqwk2fj3d87ykqkhgr1513jqlrkymr6-lowdown-1.1.0-lib                              	 275.5 KiB	  31.2 MiB
/nix/store/qcwlfkj0yggkfvv43y0bv7wyb35w1dh0-editline-1.17.1                                	  54.4 KiB	  31.0 MiB
/nix/store/va2zpdzlv0l6rg16m1359saans3p0xbd-nix-cmd-2.26.0pre                              	 869.3 KiB	  85.0 MiB
/nix/store/3pz2khi9xx5hj8h9kfv5bskf5n6rzfcn-nix-2.26.0pre20241206_dirty                    	   2.8 MiB	  87.8 MiB
/nix/store/wnfzq3rm2670fjybf9v18rypi3v2ip85-nix-manual-2.26.0pre20241206_dirty-man         	 457.6 KiB	 457.6 KiB
/nix/store/7bi50qza65zvzlz723srkqq0r2zgrajs-nix-2.26.0pre20241206_dirty                    	   2.4 KiB	  88.3 MiB
/etc/profiles/per-user/connorbaker/bin/hyperfine \
    --warmup 2 \
    --command-name nix-daemon \
        '/home/connorbaker/nix/nix-meson-O3-lto/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store daemon \
        > /dev/null' \
    --command-name nix-daemon-no-gc \
        'GC_DONT_GC=1 /home/connorbaker/nix/nix-meson-O3-lto/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store daemon \
        > /dev/null' \
    --command-name nix-daemon-read-only \
        '/home/connorbaker/nix/nix-meson-O3-lto/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store daemon \
        --read-only \
        > /dev/null' \
    --command-name nix-daemon-no-gc-read-only \
        'GC_DONT_GC=1 /home/connorbaker/nix/nix-meson-O3-lto/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store daemon \
        --read-only \
        > /dev/null' \
    --command-name nix-no-daemon \
        '/home/connorbaker/nix/nix-meson-O3-lto/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store local \
        > /dev/null' \
    --command-name nix-no-daemon-read-only \
        '/home/connorbaker/nix/nix-meson-O3-lto/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store local \
        --read-only \
        > /dev/null' \
    --command-name nix-no-daemon-no-gc \
        'GC_DONT_GC=1 /home/connorbaker/nix/nix-meson-O3-lto/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store local \
        > /dev/null' \
    --command-name nix-no-daemon-no-gc-read-only \
        'GC_DONT_GC=1 /home/connorbaker/nix/nix-meson-O3-lto/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store local \
        --read-only \
        > /dev/null'

Benchmark 1: nix-daemon
  Time (mean ± σ):     11.590 s ±  0.083 s    [User: 9.821 s, System: 1.369 s]
  Range (min … max):   11.469 s … 11.707 s    10 runs
 
Benchmark 2: nix-daemon-no-gc
  Time (mean ± σ):      7.411 s ±  0.066 s    [User: 5.274 s, System: 1.749 s]
  Range (min … max):    7.328 s …  7.529 s    10 runs
 
Benchmark 3: nix-daemon-read-only
  Time (mean ± σ):     11.065 s ±  0.094 s    [User: 9.709 s, System: 1.323 s]
  Range (min … max):   10.946 s … 11.237 s    10 runs
 
Benchmark 4: nix-daemon-no-gc-read-only
  Time (mean ± σ):      6.815 s ±  0.040 s    [User: 5.105 s, System: 1.691 s]
  Range (min … max):    6.770 s …  6.894 s    10 runs
 
Benchmark 5: nix-no-daemon
  Time (mean ± σ):     11.382 s ±  0.275 s    [User: 9.900 s, System: 1.451 s]
  Range (min … max):   11.183 s … 11.905 s    10 runs
 
Benchmark 6: nix-no-daemon-read-only
  Time (mean ± σ):     11.063 s ±  0.222 s    [User: 9.701 s, System: 1.330 s]
  Range (min … max):   10.927 s … 11.667 s    10 runs
 
Benchmark 7: nix-no-daemon-no-gc
  Time (mean ± σ):      7.061 s ±  0.048 s    [User: 5.219 s, System: 1.820 s]
  Range (min … max):    7.034 s …  7.184 s    10 runs
 
  Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.
 
Benchmark 8: nix-no-daemon-no-gc-read-only
  Time (mean ± σ):      6.813 s ±  0.054 s    [User: 5.100 s, System: 1.694 s]
  Range (min … max):    6.775 s …  6.961 s    10 runs
 
Summary
  nix-no-daemon-no-gc-read-only ran
    1.00 ± 0.01 times faster than nix-daemon-no-gc-read-only
    1.04 ± 0.01 times faster than nix-no-daemon-no-gc
    1.09 ± 0.01 times faster than nix-daemon-no-gc
    1.62 ± 0.03 times faster than nix-no-daemon-read-only
    1.62 ± 0.02 times faster than nix-daemon-read-only
    1.67 ± 0.04 times faster than nix-no-daemon
    1.70 ± 0.02 times faster than nix-daemon

nix-meson-O3-lto-no-gc

Same as nix-meson-O3-lto but also changed src/libexpr/package.nix to set enableGC ? false.

NOTE: this builds without the garbage collector, and so is different from just disabling garbage collection through the environment variable.

/etc/profiles/per-user/connorbaker/bin/hyperfine \
    --warmup 2 \
    --command-name nix-daemon-no-gc \
        '/home/connorbaker/nix/nix-meson-O3-lto-no-gc/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store daemon \
        > /dev/null' \
    --command-name nix-daemon-no-gc-read-only \
        '/home/connorbaker/nix/nix-meson-O3-lto-no-gc/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store daemon \
        --read-only \
        > /dev/null' \
    --command-name nix-no-daemon-no-gc \
        '/home/connorbaker/nix/nix-meson-O3-lto-no-gc/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store local \
        > /dev/null' \
    --command-name nix-no-daemon-no-gc-read-only \
        '/home/connorbaker/nix/nix-meson-O3-lto-no-gc/bin/nix eval \
        --file pkgs/top-level/release-attrpaths-superset.nix \
        names \
        --no-eval-cache \
        --json \
        --store local \
        --read-only \
        > /dev/null'

Benchmark 1: nix-daemon-no-gc
  Time (mean ± σ):      7.080 s ±  0.047 s    [User: 5.099 s, System: 1.598 s]
  Range (min … max):    7.027 s …  7.181 s    10 runs
 
Benchmark 2: nix-daemon-no-gc-read-only
  Time (mean ± σ):      6.490 s ±  0.033 s    [User: 4.909 s, System: 1.564 s]
  Range (min … max):    6.465 s …  6.555 s    10 runs
 
Benchmark 3: nix-no-daemon-no-gc
  Time (mean ± σ):      6.728 s ±  0.020 s    [User: 5.049 s, System: 1.661 s]
  Range (min … max):    6.709 s …  6.775 s    10 runs
 
Benchmark 4: nix-no-daemon-no-gc-read-only
  Time (mean ± σ):      6.494 s ±  0.025 s    [User: 4.913 s, System: 1.564 s]
  Range (min … max):    6.466 s …  6.549 s    10 runs
 
Summary
  nix-daemon-no-gc-read-only ran
    1.00 ± 0.01 times faster than nix-no-daemon-no-gc-read-only
    1.04 ± 0.01 times faster than nix-no-daemon-no-gc
    1.09 ± 0.01 times faster than nix-daemon-no-gc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment