Nix 2.6 eval improvement

Nix

With the recent Nix 2.6 release, I was curious about how much impact all of @pennae’s work was having on the Nix evaluation.

TL;DR: Nix evaluation is 11-17% faster in Nix 2.6 compared to Nix 2.5.1

Methodology

I have both the nix and nixpkgs repo side by side.

nixpkgs is checked out at ac44b27bab615fd49bc94fe22124deae233b5c94 (latest master)

nix is checked out at 2.6.0

Then run nix-build pkgs/top-level/release.nix -A metrics and collect the output.

For nix 2.5.1 I added a space change to pkgs/top-level/metrics.nix to force the rebuild on my machine.

For nix 2.6 I injected the version from the nix repo:

diff --git a/pkgs/top-level/metrics.nix b/pkgs/top-level/metrics.nix
index d413b881eaa..cf065697923 100644
--- a/pkgs/top-level/metrics.nix
+++ b/pkgs/top-level/metrics.nix
@@ -2,11 +2,17 @@

 with pkgs;

+let
+  nix = (import ../../../nix).defaultPackage.${pkgs.system};
+in
+

Then I took all the results and painstakingly inserted them in Notion, for your pleasure and mine:

Metric2.5.12.6.0Diff %
nix-env.qaCount3878438784
nix-env.qaDrvAggressive.values101913915101689635
nixos.kde.maxresident572032 KiB560300 KiB
nix-env.qaDrv.allocations8828388424 B8641514600 B
nixos.smallContainer.allocations280278984 B270314728 B
nix-env.qa.allocations1589209632 B1533671496 B
nix-env.qaDrv.time58.0178 s54.589 s
nixos.kde.time1.96151 s1.74307 s
nixos.lapp.time1.62311 s1.43888 s
nixos.kde.values53146045188433
nix-env.qaDrv.maxresident6430276 KiB6558340 KiB
nix-env.qa.values1392780614326969
nix-env.qaCountBroken26662666
nixos.lapp.allocations363063272 B349837776 B
nixos.kde.allocations422864776 B409517776 B
nixos.smallContainer.time1.02288 s0.861962 s
nix-env.qaDrvAggressive.allocations8828388424 B8641514600 B
nix-env.qa.maxresident2199724 KiB2220716 KiB
nix-env.qaAggressive.maxresident2199728 KiB2220736 KiB
nix-env.qa.time8.62761 s7.51825 s
nix-env.qaDrv.values101913915101689635
nix-env.qaDrvAggressive.time57.418 s54.3827 s
loc23416152341619
nix-env.qaAggressive.values1392780614326969
nix-env.qaAggressive.time8.57256 s7.62719 s
nixos.lapp.values46975174572023
nixos.smallContainer.values33414383243496
nixos.mallContainer.maxresident480160 KiB458036 KiB
nix-env.qaAggressive.allocations1589209632 B1533671496 B
nix-env.qaDrvAggressive.maxresident6429816 KiB6558460 KiB
nixos.lapp.maxresident560988 KiB550420 KiB