diff options
author | Valentin David <valentin.david@codethink.co.uk> | 2020-05-28 15:34:15 +0200 |
---|---|---|
committer | Valentin David <valentin.david@codethink.co.uk> | 2020-06-02 13:22:56 +0200 |
commit | a8f70a1ddbc751211eb5256bd514947b1199cf2d (patch) | |
tree | ffa4427c39b47a3c5211a4479664dd1ec1b66f6b /.gitattributes | |
parent | 2beaa288ba58fce651847d766de2112ba687a2e9 (diff) | |
download | buildstream-a8f70a1ddbc751211eb5256bd514947b1199cf2d.tar.gz |
Optimize variable flatteningvalentindavid/optimize-variables
Verifying for variables (all used variables defined and no cycle) is
much faster than flattening them. It also uses much less memory. Only
`bst show -f "%{vars}"` requires to flatten all variables. For other
cases we can improve performance by only checking rather than
flattening.
Also flattening very nested variables could lead to very long lists of
empty strings. The memory usage for flattening could be a lot bigger
than the resulting value. Force flattening and caching every
variable definitions can improve intermediate memory consumption and
only consume memory of the size of the result.
Finally, an optimization allowed inifinite cycles leading to
segmentation fault. This was solved by simplifying the code.
Diffstat (limited to '.gitattributes')
0 files changed, 0 insertions, 0 deletions