about summary refs log tree commit diff
path: root/lib/attrsets.nix
diff options
context:
space:
mode:
authorpennae <github@quasiparticle.net>2021-12-24 22:36:08 +0100
committerpennae <github@quasiparticle.net>2021-12-25 00:19:44 +0100
commitafecbb2f7534a0530fc0da53af74d0bb85697d36 (patch)
treed4630bd58e384297ed065e51a1ffa5ef5023d02a /lib/attrsets.nix
parentb3c4e64b31b2e5cc1f28eae9098bbc5fec0f4069 (diff)
lib/modules: optimize byName
the foldl is equivalent to a zip with concat. list concatenation in nix
is an O(n) operation, which makes this operation extremely inefficient
when large numbers of modules are involved.

this change reduces the number of list elements by 7 million on the
system used to write this, total memory spent on lists by 58MB, and
total memory allocated on the GC heap by almost 100MB (with a similar
reduction in GC heap size). it's also slightly faster.
Diffstat (limited to 'lib/attrsets.nix')
0 files changed, 0 insertions, 0 deletions