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
feat: upload list of slow/frozen rendered frame timestamps during a profile #1910
Conversation
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Generally speaking, this PR goes in the right direction. Maybe it only makes sense to send the frames' timestamps not rendered in time. The server then could calculate the timestamps if we also send the start time of the first frame. This would reduce the payload significantly.
If we use a ring buffer for keeping track of the frame timestamps, we could already set the array to a fixed size, and we will avoid allocations for every frame.
a3bcf4a
to
144a68b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First pass. Still need to review a few files.
6cd891d
to
77cb781
Compare
841ba7b
to
91b136e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
With #1912 we plan on adding spans for slow and frozen frames. After finishing this PR, this is going to be easy 👌.
This PR misses some tests.
a598777
to
d26e282
Compare
Sorry, @armcknight didn't get to this today. Will do it tomorrow. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we please add some tests @armcknight?
Co-authored-by: Philipp Hofmann <philipp.hofmann@sentry.io>
Co-authored-by: Philipp Hofmann <philipp.hofmann@sentry.io>
61ddb40
to
d2dfd83
Compare
…hInternal; move early bail for hub nil check earlier
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 🚀
Co-authored-by: Philipp Hofmann <philipp.hofmann@sentry.io>
* master: ci: Don't run benchmarks on release (#1971) Don't track OOMs for simulators (#1970) feat: Automatic nest new spans with the ui life cycle function (#1959) docs: update some docs/comments to read a little better (#1966) ci: benchmarking updates (#1926) feat: upload list of slow/frozen rendered frame timestamps during a profile (#1910) feat: Enhance the UIViewController breadcrumbs with more data (#1945) # Conflicts: # Sources/SentryCrash/Recording/Monitors/SentryCrashMonitor_System.h
* master: ref: Fix linter error (#1981) fix: read free_memory when the event is captured, not only at SDK startup (#1962) fix: Remove Sentry keys from cached HTTP request headers (#1975) release: 7.21.0 ci: Don't run benchmarks on release (#1971) Don't track OOMs for simulators (#1970) feat: Automatic nest new spans with the ui life cycle function (#1959) docs: update some docs/comments to read a little better (#1966) ci: benchmarking updates (#1926) feat: upload list of slow/frozen rendered frame timestamps during a profile (#1910)
📜 Description
Upload the start and end timestamp for each frame that is rendered while a transaction is being traced with profiling enabled.
💡 Motivation and Context
In order to help diagnose why an app may be experiencing janky frames, it would be helpful to be able to drill down into sampled backtraces in the web dashboard profiling area that corresponds to frames that take too long to render.
💚 How did you test it?
So far, just confirming that the data is uploaded by inspecting the app state in the debugging after manually working in the iOS-Swift sample app.
📝 Checklist
🔮 Next steps