For compile step failures, heuristics-based approach could have results in 1 or 2 minutes, with statically 60% for detection rate and 100% for accuracy.
The recipe could take advantage of such quick results to speed up by recompile at the suspected revision and the one before it.
Here is an example of how this works.
Case:
Entire regression range is: (r0, r10].
Heuristics-based results are: [r5]
Actual culprit is: r5
Currently without heuristics-based results, the recipe findit/chromium/compile runs at 5 revisions r1, r2, r3, r4, and r5 to identify the culprit r5.
With the heuristics-based results, the recipe could divide the entire regression range into two smaller ranges:
range1: r4, and [r5, r6, r7, r8, r9, r10]
range2: r0, and [r1, r2, r3]
The recipe checks range1 first, and it runs compile only at 2 revision r4 (pass) and then r5 (fail) to identify the culprit r5.
In this way, it runs less rounds of compile and as a result speeds up the culprit finding.
Comment 1 by st...@chromium.org
, Apr 7 2016