| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
While a transaction or profile chunk is running, performance data is collected every 100ms for up to 30 seconds. PerformanceCollectionData stored its measurements as boxed Double/Long, using null to mean "no collector reported this". Heap sizes are far outside the Long cache, so each sample allocated a box per measurement. The fields are now primitives with an explicit presence flag, and consumers ask hasUsedHeapMemory() instead of null-checking. A sentinel value was considered instead, but AndroidCpuCollector can legitimately produce NaN when it observes a zero-length interval, so no in-band value is safe. No behavior change: which measurements are reported, and their values, are unchanged. PerformanceCollectionData is @ApiStatus.Internal, so the signature changes in sentry.api are not part of the public surface.
📲 Install BuildsAndroid
|
Sorry, something went wrong.
Performance metrics 🚀
Baseline results on branch: mainStartup times
App size
|
Sorry, something went wrong.
There was a problem hiding this comment.
clever!
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
📜 Description
While a transaction or profile chunk is running, DefaultCompositePerformanceCollector collects performance data every 100ms for up to 30 seconds (~300 samples per transaction). Every sample allocated a box per measurement — 2 per sample on Android, ~600 per 30s transaction.
The fields are now primitives with an explicit presence flag, and consumers call hasUsedHeapMemory() etc. instead of null-checking.
💡 Motivation and Context
Reduce boxing and improve performance.
💚 How did you test it?
Unit tests pass
📝 Checklist
🔮 Next steps