Skip to content

Further optimisations

Description

This branch deals with adding further optimisations to reduce the time taken in bst show debian-stack.bst without considering how to change algorithms or representations in order to make life better.

This only deals with affecting how existing algorithms and functions work.

As such it should be fairly safe.

Changes proposed in this merge request:

  • _yaml.py: Only retrieve provenance in node_get() when needed
  • _yaml.py: Reduce use of isinstance() in node_sanitize()
  • _yaml.py: Remove use of isinstance() in {node,list}_{chain_,}copy
  • _yaml.py: Reduce cost of node_final_assertions
  • _context.py: Cache result of get_strict()

For reference, this full set of changes doesn't really affect RAM usage, but does improve CPU time from roughly six and a half minutes, down to roughly five and a half minutes.

The test-case i'm using is bst show debian-stack.bst for the performance profiling repo's stack, having first successfully built base-files/base-files.bst and with a full YAML cache in place.

Edited by Daniel Silverstone

Merge request reports

Loading