feat: measure configuration phase duration #27
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR adds a new metric,
configuration-duration
, to measure time spent on initialization and configuration of Android builds.How does it work?
If
project#afetEvaluate
is executed, it means that the configuration phase was executed. Then,ConfigurationPhaseObserver#init
is called andConfigurationPhaseObserver#obtain
returnstrue
, and resets its internal state tofalse
immediately after.If
project#afetEvaluate
is not executed, it means that the build used the Configuration Cache feature. Because we reset the internal state ofConfigurationPhaseObserver
tofalse
, it will returnfalse
in case of being retrieved from Configuration Cache, giving the expected result.The value of Configuration Phase duration is calculated via subtracting the build initiation time, provided by
BuildStartedTime
, and build start time, assigned in constructor ofBuildTaskService
.