Code Coverage Instrumentation
summary
Builds a live JVM agent (Sky Bar, revok, ning, dogmatic MVC examples) that instruments bytecode to count exact line executions and shows counts over websockets. Uses per-method local counters plus try/finally to avoid billions of call sites, falls back to static post-dominator analysis (quadratic and slow), and binds counters at bootstrap with invokeDynamic to a LongAdder for fast concurrent updates. Explores thread-local buffer hacks to batch commits, accepts eventual correctness, and adds differential snapshots for exploratory and comparative coverage in production.
AI-written summary · about
chapters (13)
- 0:00Introduction
- 0:15Legal Slide
- 2:08Dec
- 9:26Code Coverage
- 35:09Skybar
- 35:31Stack Map Frames
- 36:22Java C Bug
- 38:39Whats Next
- 39:38exploratory coverage
- 39:51dewpost
- 41:04Comparative Coverage
- 42:14Dead Code
- 44:38More Questions
related talks
46mCode coverage MythBusters
44mJava Code Coverage Mechanics
46mJava, Code Coverage & Their Best Friend: Bytecode
56mJava 4..21, Kotlin, Code Coverage, bytecode: scandals, intrigues, investigations
45mMaking Java more dynamic
46mKotlin, Java 4..18, Code Coverage and their best friend — bytecode: ...
30mWriting Java agents for fun and not so much profit
48mSetting up monitoring for Java apps
