Rework Element.dependencies to be more efficient

Description

This reworks Element.dependencies to be more efficient which reduces the total runtime.

Changes proposed in this merge request:

  • Rework Element.dependencies

Benchmarking

These benchmarks have been run on a 6 physical/12 virtual cores machine, with 32Go of DDR4 RAM, and a SATA6 SSD. The machine was running the latest version of fedora 29 as of the 1st of March, and was kept with the minimal running (systemd/NetworkManager/the benchmark). Each run was done 6 times, with the first run of each discarded on essential-stack from http://gitlab.com/jennis/debian-stretch-bst

step branch interpreter clock_time max_memory (MB)
bst build - 4 builders bschubert/optimize-dependencies py37 189.65 466
master py37 195.32 465
bst build - 8 builders bschubert/optimize-dependencies py37 178.32 466
master py37 188.8 465
bst build - 12 builders bschubert/optimize-dependencies py37 205.65 466
master py37 223.62 465
bst show everything cached bschubert/optimize-dependencies py37 19.09 595
master py37 19.3 594
bst show with cache bschubert/optimize-dependencies py37 14.01 465
master py37 14.32 465
bst show without cache bschubert/optimize-dependencies py37 27.01 444
master py37 27.27 444

Merge request reports

Loading