Overview
Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
Explore two powerful Java development tools in this 48-minute conference talk by Google engineers Jaeheon Yi and Jean Christophe Beyler. Dive into the technical challenges and implementation details of Java ThreadSanitizer, a dynamic data race detection tool, and Heap Profiling, a low-overhead memory allocation monitoring system. Learn how these JVM-integrated tools help improve code health, detect concurrency issues, and optimize memory usage in large-scale Java applications. Discover the intricacies of adapting ThreadSanitizer for Java, including handling JNI boundaries and symbolization of race reports. Gain insights into Google's heap profiling solution, its integration efforts with JDK10, and the valuable information it provides about allocation hotspots and object lifecycles. Understand the impact of these tools on Java development at Google and their potential for broader adoption in the Java community.
Syllabus
Intro
Outline
Happens Before: No False Positives
Vector Clocks by Thread Sanitizer
Thread Sanitizer and JDK Together
Tell TSan everything
Tell TSan almost everything
Nice Stack Reports - How?
Reporting a Data Race
Impact of Java Tsan
Ongoing and Future Work
Heap Sampling Introduction
Preamble 2 What about as a JFR event?
Preamble 3 Heap Sampling
Tentative JVMTI API
Heap Sampling Overview
Tools on Top
Compiler Implementation
Internal Implementation Details
Where is the webrev up to?
Future Potential Items
Heap Sampling Conclusion
Taught by
Java