f32a1dbb

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

Start the most expensive mutation groups first

A group waits for a slot, so the order the groups are handed to the runner in
is the order they get one, and that order is the manifest's. The groups of a
run differ by orders of magnitude, because a group costs whatever the covering
tests it runs cost: most are about a second and a few are minutes. One of those
few, handed over last, holds a slot while every other slot stands idle, so a
run that is finished in all but name ends with a single child and a quiet
machine.

Handing them over most expensive first leaves that child in the middle of the
run, where the others still have work to do beside it. The cost it sorts by is
what the covering tests cost on their own, which is what the per-mutation
budgets are derived from as well, and it is an estimate either way: a mutation
stops at the test that kills it, and which test that is is not known until it
has run. Nothing but the order children start in depends on it, so an estimate
is enough, and the index each group is reported under travels with it.

Total

3h22m06s

Created Started Finished

Time to Start Worker time Duration Time to finish Idle
Config 21m25s 1s 1s 21m26s 21m25s
Eval 21m48s 15s 15s 22m04s 22s
Build 22m03s 0s 3h21m27s 3h43m31s 3h21m27s
Suite 21m25s 16s 3h22m06s 3h43m31s 3h43m15s

Timeline

Config Eval Build Compressed gap
0s21m50s22m