fix: reduce size of config #296

Merged
jalil merged 1 commit from push-qzwpzqwovnqv into main 2025-02-16 23:45:02 +01:00
Owner

And add more knobs to further reduce the config size.

And add more knobs to further reduce the config size.
jalil self-assigned this 2025-02-16 23:37:01 +01:00
jalil added 1 commit 2025-02-16 23:37:02 +01:00
fix: reduce size of config
Some checks failed
/ check (nvimDev) (push) Successful in 10s
/ check (nvimHeadless) (push) Failing after 6s
/ check (nvimNoBundledBins) (push) Successful in 8s
/ check (nvimNoLsp) (push) Successful in 8s
/ check (nvimNoTSGrammars) (push) Successful in 9s
/ check (treefmt) (push) Successful in 3s
/ build (audiomenu) (push) Has been skipped
/ build (docs) (push) Has been skipped
/ build (jpassmenu) (push) Has been skipped
/ build (nixosConfigurations.vm.config.system.build.toplevel) (push) Has been skipped
/ build (nvim) (push) Has been skipped
/ report-size (push) Has been skipped
5a7f12d997
And add more knobs to further reduce the config size.
jalil force-pushed push-qzwpzqwovnqv from 5a7f12d997 to 5563238f0a 2025-02-16 23:41:35 +01:00 Compare
First-time contributor

Flake output sizes

Definitions:

  • Name: the name of the package/configuration.
  • Size: the closure size (size on disk/NAR size + all transitive dependencies).
  • NAR Size: the size of the build output (package without the dependencies).
  • [NAR] Size Change: the amount changed compared to the main branch.

Tips on reading this data:

  • For NixOS configurations you generally care only about the Size (closure size/size on disk).
    • Reduce the Size by disabling unneeded services/default packages.
  • For Packages you care about both the Size and the NAR Size.
    • Reduce the NAR Size by reducing the size of the build outputs, e.g. don't copy unnecessary data to the $out dir, optimize binaries for size, etc.
    • Reduce the Size by reducing the dependencies (e.g. buildInputs).
    • Don't worry too much about size, some dependencies are deduplicated, e.g. glibc adds ~40MiB to the Size, but is generally shared by ~every binary on the system, so, chances are, you are already including it from somewhere else and statically linking with e.g. musl is not gonna improve things.

NixOS Configurations

Name Size Size Change NAR Size NAR Size Change
vm 8.8GiB -38MiB 19KiB 0B

Packages

Name Size Size Change NAR Size NAR Size Change
audiomenu 42MiB 0B 1.4MiB 0B
docs 2.4MiB 4.5KiB 2.4MiB 4.5KiB
docs-home-markdown 11KiB 0B 11KiB 0B
docs-nixos-markdown 6.3KiB 0B 6.3KiB 0B
docs-nvim-markdown 2.2KiB 328B 2.2KiB 328B
jpassmenu 43MiB 0B 2.3MiB 0B
nvim 1.4GiB -148MiB 578KiB 0B
nvim-headless 389MiB -194MiB 578KiB 0B
nvim-no-lsps 929MiB -148MiB 578KiB 0B
nvim-no-ts 1.5GiB -148MiB 578KiB 0B
nvim-small 1.1GiB -148MiB 578KiB 0B
# Flake output sizes **Definitions:** - `Name`: the name of the package/configuration. - `Size`: the closure size (size on disk/NAR size + all transitive dependencies). - `NAR Size`: the size of the build output (package without the dependencies). - `[NAR] Size Change`: the amount changed compared to the main branch. **Tips on reading this data:** - For NixOS configurations you generally care only about the `Size` (closure size/size on disk). - Reduce the `Size` by disabling unneeded services/default packages. - For Packages you care about both the `Size` and the `NAR Size`. - Reduce the `NAR Size` by reducing the size of the build outputs, e.g. don't copy unnecessary data to the $out dir, optimize binaries for size, etc. - Reduce the `Size` by reducing the dependencies (e.g. `buildInputs`). - Don't worry too much about size, some dependencies are deduplicated, e.g. `glibc` adds ~40MiB to the `Size`, but is generally shared by ~every binary on the system, so, chances are, you are already including it from somewhere else and statically linking with e.g. `musl` is not gonna improve things. # NixOS Configurations | Name | Size | Size Change | NAR Size | NAR Size Change | |------|-----:|------------:|---------:|----------------:| | `vm` | 8.8GiB | -38MiB | 19KiB | 0B | # Packages | Name | Size | Size Change | NAR Size | NAR Size Change | |------|-----:|------------:|---------:|----------------:| | `audiomenu` | 42MiB | 0B | 1.4MiB | 0B | | `docs` | 2.4MiB | 4.5KiB | 2.4MiB | 4.5KiB | | `docs-home-markdown` | 11KiB | 0B | 11KiB | 0B | | `docs-nixos-markdown` | 6.3KiB | 0B | 6.3KiB | 0B | | `docs-nvim-markdown` | 2.2KiB | 328B | 2.2KiB | 328B | | `jpassmenu` | 43MiB | 0B | 2.3MiB | 0B | | `nvim` | 1.4GiB | -148MiB | 578KiB | 0B | | `nvim-headless` | 389MiB | -194MiB | 578KiB | 0B | | `nvim-no-lsps` | 929MiB | -148MiB | 578KiB | 0B | | `nvim-no-ts` | 1.5GiB | -148MiB | 578KiB | 0B | | `nvim-small` | 1.1GiB | -148MiB | 578KiB | 0B |
jalil merged commit 5563238f0a into main 2025-02-16 23:45:02 +01:00
jalil deleted branch push-qzwpzqwovnqv 2025-02-16 23:45:02 +01:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: jalil/configuration.nix#296
No description provided.