-
-
Notifications
You must be signed in to change notification settings - Fork 172
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
Benchmark SDK startup #1040
Comments
Before starting with a benchmark, I can tell you immediately that the most significant cost (i.e., defining the init-time) when using the On my M1, this takes 75ms on average and can peak at 100+ms, which isn't great but happens 100% outside the SDK. On the same machine, initializing the SDK with the So, what is the expected upper bound here? Should we target below 5ms? Is While we can async the handler's start, this would require a callback, at least when the handler start was unsuccessful, because it can't report any crashes through the application lifetime, which can be acceptable. Still, it should be a decision the client can make. Otherwise, if that makes sense, I am all for adding benchmarks or improving the documentation towards expected runtimes. |
While this is useful context, I think it doesn't replace the need for a benchmark. In fact, it raises a good point that we'd need benchmarks with both breakpad and crashpad backends.
What is acceptable will vary from app/customer to app/customer. I'd say we publish benchmarks, and go from there. Doesn't mean we need to improve things immediately, but at least we're being transparent about things.
Yeah if it's an opt-in, I imagine some users might rather the more complex |
I fully agree. The context wasn't meant as a counter to introduce benchmarks into the Native SDK codebase but as a framing for creating such a benchmark and how to address users. Regarding the benchmark itself:
|
I'd leave the details to you. I imagine implementing all things you listed could be very time consuming so I'd only suggest trying to take a simpler route. Something quick that gives good insight might take us far, and we can always revisit this and go deeper if needed. |
A user reported that while benchmarking their app's startup, the Sentry SDK had significant overhead. Unfortunately I don't have more details than that.
We should benchmark the
init
call with default/common settings and verify if anything can be made async, or otherwise improved to reduce the overhead.A clear communication of what's happening during
init
can help set expectations of overhead. Including some example benchmarks.The text was updated successfully, but these errors were encountered: