Analysis of Flat Performance Profiles using Code Mining

Code Mining is a low-level performance analysis technique to uncover performance bottlenecks in applications that do not tend to exhibit distinct hot spots. This is common in large enterprise workloads run under an application server such as WebSphere. Similar to data mining, the technique generally involves populating a database with compiled code instructions and supplementing it with processor event data. Structured queries can then be performed on the data to develop a deep understanding of problem areas in the code.

This talk will describe the motivation for code mining by highlighting the limitations of traditional performance analysis techniques for enterprise applications with flat profiles . We will discuss the pioneering work done by the Testarossa Java JIT to develop the tools and techniques necessary to populate, query, and interpret the results. Successful examples of uncovered opportunities will be presented. We will also discuss some of the ongoing and future work to evolve this analysis technique into highly productive tool for modern workloads and processors.


Greg Steffan
Last modified: Wed Aug 26 18:20:51 EDT 2009