This change adds support for analysing profiles generated when using Skymeld. For this, the interlaced analysis and execution phase is split into two parts:
Analysis only, no execution interlaced.
Execution has started. analysis and execution may be interlaced.
This is done by checking for the first observed action processing event. The distinction is relevant, because it helps us determine how many cores are available on the machine that ran the Bazel client, as well has how many cores are used during execution. The later may be higher than the prior, e.g. when remote execution is used.
Update SkymeldUsed to include the combined analysis and execution phase, as well as optionally the phase at which execution likely starts.
Update EstimatedCoresDataProvider to estimate cores when Skymeld is used.
Update CriticalPathNotDominantSuggestionProvider when Skymeld is used, if the information when execution started is available.
This change adds support for analysing profiles generated when using Skymeld. For this, the interlaced analysis and execution phase is split into two parts:
This is done by checking for the first observed
action processing
event. The distinction is relevant, because it helps us determine how many cores are available on the machine that ran the Bazel client, as well has how many cores are used during execution. The later may be higher than the prior, e.g. when remote execution is used.SkymeldUsed
to include the combined analysis and execution phase, as well as optionally the phase at which execution likely starts.EstimatedCoresDataProvider
to estimate cores when Skymeld is used.CriticalPathNotDominantSuggestionProvider
when Skymeld is used, if the information when execution started is available.Contributes to #97.