sentry-java
sentry-java copied to clipboard
Performance issue - CPU Hot spot
Integration
sentry-spring-jakarta
Java Version
17
Version
7.8.0
Steps to Reproduce
While profiling some reactive code using project Reactor with automatic context propagation and Sentry, I noticed quite a lot of time is spent instantiating SecureRandom objects as the SentryReactorThreadLocalAccessor.getValue call will always cause a new TracesSampler thus a new SecureRandom object to be created when hub == null || hub instanceof NoOpHub in Sentry#getCurrentHub.
SecureRandom objects are said to be thread-safe by the javadoc, would it be possible/safe to just reuse the same instance? Or reuse the TracesSampler? Or avoid cloning the NoOpHub alltogether..?
Expected Result
Not so much time spent creating SecureRandom objects
Actual Result
Screenshot of profiling results: