MASPLAS '07
Blended Analysis for Performance Understanding of Java Programs
Bruno Dufour
This paper defines a new analysis paradigm, blended program analysis,
that enables practical, effective analysis of large framework-based Java
applications for performance understanding. Blended analysis combines a
dynamic representation of the program call structure, with a static
analysis applied to a region of that call structure with observed
performance problems. A blended escape analysis is presented which
enables approximation of object effective lifetimes, to facilitate
explanation of the usage of newly created objects in a program region.
Performance bottlenecks stemming from overuse of temporary structures
are common in framework-based applications. Metrics are introduced to
expose how, in aggregate, these applications make use of new objects.
Results of empirical experiments with the Trade6 benchmark are
presented. A case study demonstrates how results from a blended escape
analysis can help locate, in a region which calls 223 distinct methods,
the single call path responsible for a performance problem involving
objects created at 10 distinct sites and as far as 6 call levels away.
back to main page