mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-22 05:56:15 +02:00
1fe66852ff
since `up` and `values` are both pointer-aligned the type field will also be pointer-aligned, wasting 48 bits of space on most machines. we can get away with removing the type field altogether by encoding some information into the `with` expr that created the env to begin with, reducing the GC load for the absolutely massive amount of single-entry envs we create for lambdas. this reduces memory usage of system eval by quite a bit (reducing heap size of our system eval from 8.4GB to 8.23GB) and gives similar savings in eval time. running `nix eval --raw --impure --expr 'with import <nixpkgs/nixos> {}; system'` before: Time (mean ± σ): 5.576 s ± 0.003 s [User: 5.197 s, System: 0.378 s] Range (min … max): 5.572 s … 5.581 s 10 runs after: Time (mean ± σ): 5.408 s ± 0.002 s [User: 5.019 s, System: 0.388 s] Range (min … max): 5.405 s … 5.411 s 10 runs |
||
---|---|---|
.. | ||
rl-next | ||
src | ||
theme | ||
_redirects | ||
anchors.jq | ||
book.toml | ||
custom.css | ||
generate-builtin-constants.nix | ||
generate-builtins.nix | ||
generate-manpage.nix | ||
generate-settings.nix | ||
generate-store-info.nix | ||
generate-store-types.nix | ||
generate-xp-features-shortlist.nix | ||
generate-xp-features.nix | ||
local.mk | ||
quote-literals.xsl | ||
redirects.js | ||
utils.nix |