Rip out ChainMap(), node_chain_copy(), node_list_copy()
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