Learn More
Our research group has analyzed many industrial, framework-based applications. In these applications, simple functionality often requires excessive runtime activity. It is increasingly difficult to assess if and how inefficiencies can be fixed. Much of this activity involves the transformation of information, due to framework couplings. We present an(More)
Framework-intensive applications (e.g., Web applications) heavily use temporary data structures, often resulting in performance bottlenecks. This paper presents an optimized blended escape analysis to approximate object lifetimes and thus, to identify these temporaries and their uses. Empirical results show that this optimized analysis on average prunes 37%(More)
This paper defines a new analysis paradigm, <i>blended program analysis</i>, that enables practical, effective analysis of large framework-based Java applications for performance understanding. Blended analysis combines a <i>dynamic</i> representation of the program calling structure, with a <i>static</i> analysis applied to a region of that calling(More)
Many opportunities for easy, big-win, program optimizations are missed by compilers. This is especially true in highly layered Java applications. Often at the heart of these missed optimization opportunities lie computations that, with great expense, produce data values that have little impact on the program's final output. Constructing a new date formatter(More)
The diagnosis of performance and memory problems can require the analysis of large and complex data sets describing a program's execution. An analysis tool must help the user both find the right organization of the data to uncover useful information, and work with the data through a lengthy and unpredicatable discovery process. In this paper we present(More)
Large applications often suffer from excessive memory consumption. The nature of these heaps, their scale and complex intercon-nections, makes it difficult to find the low hanging fruit. Techniques relying on dominance or allocation tracking fail to account for sharing, and overwhelm users with small details. More fundamentally, a programmer still needs to(More)
Many J a va programmers believe they do not have t o w orry about memory management because of automatic garbage collection. In fact, many J a va programs run out of memory unexpectedly after performing a number of operations. A memory leak in Java is caused when an object that is no longer needed cannot be reclaimed because another object is still(More)