Skip to content

Rip out ChainMap(), node_chain_copy(), node_list_copy()

James Ennis requested to merge jennis/remove_node_chain_stuff into master

Description

By ripping out the ChainMap related code we found that when benchmarking the Debian-like project, a bst show debian-stack.bst (~75000 elements), with a hot YAML cache, brought about a ~20s improvement, at the cost of ~15M more RAM (peak usage).

Benchmarks were run on a VM running Debian, SSD, 16G RAM.

After a brief discussion between myself, Daniel and Ben, we concluded that this is a worthwhile trade off (considering the recent improvements in bringing the RAM usage down significantly).

  • The majority of the speedup comes in the Element._new_from_meta step().
  • And a small amount in the resolution of cache state: Element._update_state().
  • This patch has the benefit of removing a lot of unnecessary and duplicate code.
Edited by James Ennis

Merge request reports