[Talk Proposal] Helping Linux and Java Play Well Together.
Christine Flood
chf at redhat.com
Thu Dec 8 21:39:27 CET 2016
Abstract:
Your Java method is compiled by Javac into an intermediate representation called bytecode stored in a .class file. That bytecode is fed to a JVM which can either interpret it one instruction at a time, or compile it into optimized machine code and execute that machine code. The mapping from method names to interpreted bytecodes or executing machine code is managed inside the JVM. This makes it difficult for Linux code analysis tools to display useful information about Java code. Generally you will receive an address for the executing code, but no mapping from the assembly code back to your Java program.
Red Hat has developed two new tools to make it easier for Java programmers on Linux to see what their Java program is doing. The first is an unwinder for gdb which instead of giving addresses of compiled code, will actually show the names of the interpreted/compiled java methods. The second is an enhancement to perf that knows about Java class names and can map events like cpu instruction counts back to their associated Java methods. This way you can tell which of your Java methods is actually missing in the LLC or taking up 30% of your cpu time.
Come see a demo of these tools at work.
Christine H. Flood has been hacking programming languages and tools for over 20 years. She didn't really have much to do with the development of these tools but she thinks they are really useful and should be shown off.
More information about the java-devroom
mailing list