Skip to content

Commit 0068ee6

Browse files
committed
Release note for attrset optimization
1 parent 8f71ef7 commit 0068ee6

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

doc/manual/source/release-notes/rl-2.32.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,16 @@
6464

6565
## Performance improvements
6666

67+
- Optimize memory usage of attribute set merges [#13987](https://github.com/NixOS/nix/pull/13987)
68+
69+
[Attribute set update operations](@docroot@/language/operators.md#update) have been optimized to
70+
reduce reallocations in cases when the second operand is small.
71+
72+
For typical evaluations of nixpkgs this optimization leads to ~20% less memory allocated in total
73+
without significantly affecting evaluation performance.
74+
75+
See [eval-attrset-update-layer-rhs-threshold](@docroot@/command-ref/conf-file.md#conf-eval-attrset-update-layer-rhs-threshold)
76+
6777
- Substituted flake inputs are no longer re-copied to the store [#14041](https://github.com/NixOS/nix/pull/14041)
6878

6979
Since 2.25, Nix would fail to store a cache entry for substituted flake inputs, which in turn would cause them to be re-copied to the store on initial evaluation. Caching these inputs results in a near doubling of performance in some cases — especially on I/O-bound machines and when using commands that fetch many inputs, like `nix flake [archive|prefetch-inputs]`.

0 commit comments

Comments
 (0)