mirror of
https://github.com/srid/nixos-config.git
synced 2026-07-16 22:01:33 +08:00
ralph(eval): reduce Nix eval time for pureintent + zest (#120)
* ralph(eval): baseline + benchmark harness pureintent cpuTime 23.17s, zest cpuTime 14.93s (median of 5). Methodology: NIX_SHOW_STATS cpuTime, eval-cache off, warm fetcher cache. * ralph(eval) cycle 1: disable NixOS options manual on pureintent documentation.nixos.enable = false. Generating the NixOS manual evaluates every option's doc string. nrThunks 20,400,114 -> 19,201,996 (-5.9%), nrFunctionCalls -6.2%, nrPrimOpCalls -7.5%. Package man pages unaffected. Metric pivoted to deterministic NIX_SHOW_STATS counters: cpuTime is unusable on this thermally-throttling machine (same eval = 11s..21s). * ralph(eval): switch home target zest -> sincereintent (per request) sincereintent home config baseline: nrThunks 5,323,428 / calls 3,227,404 / primops 1,565,120 (deterministic). * ralph(eval) cycle 2: disable home-manager options manpage manual.manpages.enable = false in shared modules/home/default.nix. HM builds home-configuration.nix(5) by default, evaluating every HM option's doc string. sincereintent nrThunks 5,323,428 -> 3,551,679 (-33.3%), calls -35%, primops -39%. * ralph(eval): record cycle-2 pureintent gain (shared HM module) pureintent nrThunks 19,201,996 -> 17,431,437 (-9.2%); cycle-2's manual.manpages.enable=false also feeds pureintent's embedded home-manager via modules/nixos/default.nix. Total pureintent -14.6% from baseline. * ralph(eval) cycle 3: profiling + dead-ends (no behaviour-preserving win) Confirmed: nixpkgs single-instantiation (no 2x trap), unused inputs are lazy (no counter impact), escapeShellArg hotspot is HM file-linking + /etc (not patchable here). Remaining eval cost is feature-bound (embedded HM, vira/kolu, google-cloud-sdk/pandoc/omnix). * ralph(eval) cycle 4: drop heavy home.packages (yt-dlp/lima/omnix/pandoc/gcloud) User-approved behaviour change. Removed from shared modules/home/cli/terminal.nix (kept hledger). pureintent nrThunks 17,431,437 -> 16,989,720 (-2.5%), sincereintent 3,551,679 -> 2,757,201 (-22.4%). Totals from baseline: pureintent -16.7%, sincereintent -48.2%. * ralph(eval): finalize report (final measurement, key findings, cost breakdown)
This commit is contained in:
parent
87441d5270
commit
b4a60aaf3a
5 changed files with 185 additions and 7 deletions
|
|
@ -17,29 +17,22 @@ in
|
|||
gnumake
|
||||
killall
|
||||
television
|
||||
yt-dlp
|
||||
gh
|
||||
# Broken, https://github.com/NixOS/nixpkgs/issues/299680
|
||||
# ncdu
|
||||
|
||||
# Useful for Nix development
|
||||
ci
|
||||
omnix
|
||||
nixpkgs-fmt
|
||||
just
|
||||
watchexec
|
||||
fswatch
|
||||
|
||||
eternal-terminal
|
||||
lima
|
||||
|
||||
# AI
|
||||
google-cloud-sdk
|
||||
|
||||
# Publishing
|
||||
asciinema
|
||||
ispell
|
||||
pandoc
|
||||
|
||||
# Dev
|
||||
fuckport
|
||||
|
|
|
|||
|
|
@ -3,6 +3,11 @@
|
|||
home.sessionVariables = {
|
||||
DO_NOT_TRACK = "1";
|
||||
};
|
||||
|
||||
# Home-manager generates an options manpage (`home-configuration.nix(5)`) by
|
||||
# default, which evaluates the doc string of every HM option. Options are
|
||||
# searched online, not via `man`, so skip it — measurable eval-time win.
|
||||
manual.manpages.enable = false;
|
||||
imports = [
|
||||
./cli/tmux.nix
|
||||
./editors/neovim
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue