[PROF-9469] Skip heap samples with age 0#3573
Conversation
ca576a9 to
cc459c7
Compare
cc459c7 to
f7989e4
Compare
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #3573 +/- ##
==========================================
- Coverage 98.27% 98.27% -0.01%
==========================================
Files 1274 1274
Lines 75233 75247 +14
Branches 3545 3545
==========================================
+ Hits 73934 73947 +13
- Misses 1299 1300 +1 ☔ View full report in Codecov by Sentry. |
ivoanjo
left a comment
There was a problem hiding this comment.
Looks good! I left my usual smattering of minor suggestions, one bigger suggestion and one maybe-a-bug note ;)
ivoanjo
left a comment
There was a problem hiding this comment.
👍 Looks great!
I'm slightly curious if the change moved the micro-benchmark results needle, but feel free to ignore my curiosity haha
0cbb007 to
deaccf7
Compare
Did a local run and saw which looks similar enough to the original in the PR description |
|
Ah! Somewhat sad, I was hoping this tweak would buy is a bit more headroom. I guess it might still on real-world usecases, but would've been cool to see in the microbenchmark as well :) |
What does this PR do?
Skip updating and serialization of heap samples for objects that were allocated in the current GC epoch/generation. The fact that these objects are still alive is usually just a happy accident from the fact that GC hasn't run yet and thus just add noise when you want to understand long-term heap usage and, more specifically, memory leaks.
In fact, allocation profiles alone can give you a rather accurate description of what the population of age == 0 should look like at any-one time. If no GCs ever ran, allocation profiles would be === to heap profiles as all objects would be technically alive.
Motivation:
Additional Notes:
Some micro-benchmark results:
How to test the change?
Unsure? Have a question? Request a review!