getsentry / symbolicator

Native Symbolication as a Service
https://getsentry.github.io/symbolicator/
MIT License
352 stars 45 forks source link

Add another Cache for accessing files in `ArtifactBundle`s #1354

Closed Swatinem closed 5 months ago

Swatinem commented 5 months ago

When profiling (via symbolicator-stress) processing of javascript events, the majority of the time is spent extracting minified / sourcemap files from artifact bundles (which are essentially zip files).

We introduce yet another cache which can avoid this costly unzip process by keeping these unzipped files in memory.

For the above mentioned stresstest, this has lead to a throughput increase of 1000x. Though not surprisingly, the stresstest processes the exact same event over and over and has thus a 100% cache hit rate.

skip-changelog

codecov[bot] commented 5 months ago

Codecov Report

Attention: 5 lines in your changes are missing coverage. Please review.

Comparison is base (60dec6f) 75.88% compared to head (b24da62) 75.99%. Report is 2 commits behind head on master.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #1354 +/- ## ========================================== + Coverage 75.88% 75.99% +0.10% ========================================== Files 99 100 +1 Lines 14764 14846 +82 ========================================== + Hits 11204 11282 +78 - Misses 3560 3564 +4 ```
anonrig commented 5 months ago

@Swatinem Can you update the description to include any context about people who doesn't know anything about our talk/pair coding session? If you could include benchmark results, what are we doing to improve etc. it would be good for future documentation.