Add granular tracing and benchmark for Feature Combination Queries#1
Open
temcguir wants to merge 14 commits into
Open
Add granular tracing and benchmark for Feature Combination Queries#1temcguir wants to merge 14 commits into
temcguir wants to merge 14 commits into
Conversation
d6e92b2 to
68e0d56
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 builds on top of google#456 to introduce granular tracing and a dedicated macrobenchmark for the new CameraX Feature Groups API integration.
The goal of this PR is to provide objective performance metrics on the overhead of executing
isGroupingSupportedduring camera session initialization, enabling data-driven architectural decisions regarding persistent caching.Key Changes
core:camera): Addedandroidx.tracing.traceAsyncandtracemarkers toFeatureGroupHandler.ktandCameraSession.kt. This allows us to isolate the latency of specific pipeline components (e.g.,JCA:CreatePreviewUseCase,JCA:FCQValidation).benchmark): AddedFeatureGroupQueryBenchmark.ktto capture and aggregate (Mode.Sum) the total initialization tax caused by sequential feature group queries.StartupBenchmarkandFirstFrameBenchmarkby replacing the internalam start -W(which fails on Compose UI rendering detection) with nativeContext.startActivityand explicitUiAutomatorreadiness checks.reportFullyDrawn()toMainActivity.kt's first frame callback to ensure Android correctly registers the TTFF (Time to First Frame).Permissions.ktto grant necessary Android 13+ media permissions, preventing benchmarks from hanging on permission dialogs.Related PR
Testing Performed
FeatureGroupQueryBenchmarksuccessfully runs and outputs Perfetto traces with the isolated JCA and FCQ latency metrics.FirstFrameBenchmarkandStartupBenchmarknow pass reliably on physical devices.