-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[RUM-4720] Improve JS Refresh Rate reliability on Android #689
Merged
marco-saia-datadog
merged 1 commit into
develop
from
marcosaia/RUM-4720/js-fps-provider
Jul 17, 2024
Merged
[RUM-4720] Improve JS Refresh Rate reliability on Android #689
marco-saia-datadog
merged 1 commit into
develop
from
marcosaia/RUM-4720/js-fps-provider
Jul 17, 2024
Conversation
This file contains 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
marco-saia-datadog
force-pushed
the
marcosaia/RUM-4720/js-fps-provider
branch
3 times, most recently
from
July 16, 2024 13:00
be526a0
to
b6888ec
Compare
0xnm
reviewed
Jul 16, 2024
packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkImplementation.kt
Outdated
Show resolved
Hide resolved
packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkImplementation.kt
Show resolved
Hide resolved
packages/core/android/src/main/kotlin/com/datadog/reactnative/FrameRateProvider.kt
Outdated
Show resolved
Hide resolved
packages/core/android/src/main/kotlin/com/datadog/reactnative/FrameRateProvider.kt
Outdated
Show resolved
Hide resolved
packages/core/android/src/main/kotlin/com/datadog/reactnative/FrameRateProvider.kt
Outdated
Show resolved
Hide resolved
packages/core/android/src/main/kotlin/com/datadog/reactnative/FrameRateProvider.kt
Outdated
Show resolved
Hide resolved
packages/core/android/src/main/kotlin/com/datadog/reactnative/UiThreadExecutor.kt
Outdated
Show resolved
Hide resolved
packages/core/android/src/main/kotlin/com/datadog/reactnative/UiThreadExecutor.kt
Outdated
Show resolved
Hide resolved
marco-saia-datadog
force-pushed
the
marcosaia/RUM-4720/js-fps-provider
branch
2 times, most recently
from
July 16, 2024 15:04
d8ddbbe
to
90d50ac
Compare
0xnm
reviewed
Jul 16, 2024
packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkImplementation.kt
Outdated
Show resolved
Hide resolved
packages/core/android/src/main/kotlin/com/datadog/reactnative/DdSdkNativeInitialization.kt
Outdated
Show resolved
Hide resolved
packages/core/android/src/test/kotlin/com/datadog/reactnative/DdSdkTest.kt
Show resolved
Hide resolved
marco-saia-datadog
force-pushed
the
marcosaia/RUM-4720/js-fps-provider
branch
from
July 17, 2024 07:28
90d50ac
to
ccfc9d8
Compare
0xnm
approved these changes
Jul 17, 2024
4 tasks
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.
What does this PR do?
Improves JS Refresh Rate reliability.
The previous implementation registered the
VitalFrameCallback
during the SDK initialisation, and did not account for the lifecycle of the app.The new implementation stops the callback when the app is paused, resetting the last registered frame time, therefore avoiding false spikes in the framerate when the app goes to the background.
Additional Notes
The new implementation uses
ChoreographerCompat
instead ofChoreographer
for better compatibility, and it also makes sure the Choregrapher calls are performed on the UI Thread.A
UIThreadExecutor
constructor parameter inDdSdkImplementation
has also been introduced, in order to be able to inject a class to test UI Thread code correctly in the test environment.Review checklist (to be filled by reviewers)