3 ms·
I wonder how they are able to trace and capture variable and stack state at a rate of 20M invocations — per second!? How is this possible on the JVM? (I’m awa
by wellpast 7y ago
I wonder how they are able to trace and capture variable and stack state at a rate of 20M invocations — per second!?
How is this possible on the JVM?
(I’m aware of the instrumentation API that profilers use but I thought they had to do sampling to limit interference with program performance and they are not capturing all the data req’d for debugging either.)
Anyone know?
- Liquid_Fire 7y agoPure speculation: You don't need to record everything, only enough information to reconstruct what happened later (e.g. outcomes of branches, results of system calls, etc). You can then run a post-processing phase after execution (or in parallel on another thread) to fill in the extra detail that is needed for efficiently presenting what happened.
- HenriNext 7y agoActually, the 20 million events per second is the real event count, and on top of that comes processing..
- HenriNext 7y agoThere is no single trick, just lot of hard work. If there's interest, I can write a blog post about this.
- wellpast 7y agoI would love to read this. Thank you.