EDBT 2026 Demo / reviewers in the wild / expert
Gary Sevitsky
dblp:22/404
· DBLP profile ↗
12ranked-venue papers
0as first author
0since 2021 · last 2014
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 11Systems, architecture and hardware · 1
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
6 papers |
Program analysis · 75% Empirical software engineering · 9% Runtime systems and virtual machines · 8% |
Topics — the 10 heaviest of 13, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis
dynamic analysis |
0.5 | 5 | 2014 | Scalable Runtime Bloat Detection Using Abstract Dynamic Slicing · ACM Trans. Softw. Eng. Methodol. 2014 Finding low-utility data structures · PLDI 2010 Go with the flow: profiling copies to find runtime bloat · PLDI 2009 |
Program analysis › dynamic analysis
runtime bloat detection |
0.4 | 3 | 2014 | Scalable Runtime Bloat Detection Using Abstract Dynamic Slicing · ACM Trans. Softw. Eng. Methodol. 2014 Finding low-utility data structures · PLDI 2010 Go with the flow: profiling copies to find runtime bloat · PLDI 2009 |
Program analysis › dynamic analysis
profiling |
0.2 | 2 | 2010 | Finding low-utility data structures · PLDI 2010 Go with the flow: profiling copies to find runtime bloat · PLDI 2009 |
Empirical software engineering › software economics
cost-benefit analysis |
0.2 | 1 | 2014 | Scalable Runtime Bloat Detection Using Abstract Dynamic Slicing · ACM Trans. Softw. Eng. Methodol. 2014 |
Program analysis › dynamic analysis
dynamic slicing |
0.2 | 1 | 2014 | Scalable Runtime Bloat Detection Using Abstract Dynamic Slicing · ACM Trans. Softw. Eng. Methodol. 2014 |
Program analysis › static analysis › pointer analysis
escape analysis |
0.2 | 2 | 2008 | A scalable technique for characterizing the usage of temporaries in framework-intensive Java applications · SIGSOFT FSE 2008 Blended analysis for performance understanding of framework-based applications · ISSTA 2007 |
Program analysis
static analysis |
0.1 | 1 | 2008 | A scalable technique for characterizing the usage of temporaries in framework-intensive Java applications · SIGSOFT FSE 2008 |
Runtime systems and virtual machines › runtime memory management
memory bloat |
0.1 | 1 | 2007 | The causes of bloat, the limits of health · OOPSLA 2007 |
Software maintenance and evolution
technical debt |
0.1 | 1 | 2007 | The causes of bloat, the limits of health · OOPSLA 2007 |
Operating systems
workload characterization |
0.0 | 1 | 2008 | A scalable technique for characterizing the usage of temporaries in framework-intensive Java applications · SIGSOFT FSE 2008 |
Methods — techniques the papers use, named apart from their topics
profiling · 0.2runtime dependence graph · 0.2bounded abstract domains · 0.2blended escape analysis · 0.1abstract interpretation · 0.1static analysis · 0.1escape analysis · 0.1dynamic analysis · 0.1blended analysis · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2014 | Scalable Runtime Bloat Detection Using Abstract Dynamic SlicingabstractMany large-scale Java applications suffer from runtime bloat. They execute large volumes of methods and create many temporary objects, all to execute relatively simple operations. There are large opportunities for performance optimizations in these applications, but most are being missed by existing optimization and tooling technology. While JIT optimizations struggle for a few percent improvement, performance experts analyze deployed applications and regularly find gains of 2× or more. Finding such big gains is difficult, for both humans and compilers, because of the diffuse nature of runtime bloat. Time is spread thinly across calling contexts, making it difficult to judge how to improve performance. Our experience shows that, in order to identify large performance bottlenecks in a program, it is more important to understand its dynamic dataflow than traditional performance metrics, such as running time. This article presents a general framework for designing and implementing scalable analysis algorithms to find causes of bloat in Java programs. At the heart of this framework is a generalized form of runtime dependence graph computed by abstract dynamic slicing , a semantics-aware technique that achieves high scalability by performing dynamic slicing over bounded abstract domains. The framework is instantiated to create two independent dynamic analyses, copy profiling and cost-benefit analysis , that help programmers identify performance bottlenecks by identifying, respectively, high-volume copy activities and data structures that have high construction cost but low benefit for the forward execution. We have successfully applied these analyses to large-scale and long-running Java applications. We show that both analyses are effective at detecting inefficient operations that can be optimized for better performance. We also demonstrate that the general framework is flexible enough to be instantiated for dynamic analyses in a variety of application domains. Guoqing Harry Xu, Nick Mitchell, Matthew Arnold, Atanas Rountev, Edith Schonberg, Gary Sevitsky |
ACM Trans. Softw. Eng. Methodol. | 6 |
| 2011 | Patterns of Memory Inefficiency
Adriana E. Chis, Nick Mitchell, Edith Schonberg, Gary Sevitsky, Patrick O'Sullivan, Trevor Parsons, John Murphy 0001 |
ECOOP | 4 |
| 2010 | Finding low-utility data structuresabstractMany 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 to format every date, or populating a large set full of expensively constructed structures only to check its size: these involve costs that are out of line with the benefits gained. This disparity between the formation costs and accrued benefits of data structures is at the heart of much runtime bloat. Guoqing Harry Xu, Nick Mitchell, Matthew Arnold, Atanas Rountev, Edith Schonberg, Gary Sevitsky |
PLDI | 6 |
| 2009 | Making Sense of Large Heaps
Nick Mitchell, Edith Schonberg, Gary Sevitsky |
ECOOP | 3 |
| 2009 | Go with the flow: profiling copies to find runtime bloatabstractMany large-scale Java applications suffer from runtime bloat. They execute large volumes of methods, and create many temporary objects, all to execute relatively simple operations. There are large opportunities for performance optimizations in these applications, but most are being missed by existing optimization and tooling technology. While JIT optimizations struggle for a few percent, performance experts analyze deployed applications and regularly find gains of 2x or more. Guoqing Harry Xu, Matthew Arnold, Nick Mitchell, Atanas Rountev, Gary Sevitsky |
PLDI | 5 |
| 2008 | A scalable technique for characterizing the usage of temporaries in framework-intensive Java applicationsabstractFramework-intensive applications (e.g., Web applications) heavily use temporary data structures, often resulting in performance bot-tlenecks. This paper presents an optimized blended escape analysis to approximate object lifetimes and thus, to identify these tempo-raries and their uses. Empirical results show that this optimized analysis on average prunes 37 % of the basic blocks in our bench-marks, and achieves a speedup of up to 29 times compared to the original analysis. Newly defined metrics quantify key properties of temporary data structures and their uses. A detailed empirical eval-uation offers the first characterization of temporaries in framework-intensive applications. The results show that temporary data struc-tures can include up to 12 distinct object types and can traverse through as many as 14 method invocations before being captured. Bruno Dufour, Barbara G. Ryder, Gary Sevitsky |
SIGSOFT FSE | 3 |
| 2007 | Blended analysis for performance understanding of framework-based applicationsabstractThis 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 calling structure, with a static analysis applied to a region of that calling 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 Trade 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 9 distinct sites and as far as 6 call levels away. Bruno Dufour, Barbara G. Ryder, Gary Sevitsky |
ISSTA | 3 |
| 2007 | The causes of bloat, the limits of healthabstractApplications often have large runtime memory requirements. In some cases, large memory footprint helps accomplish an important functional, performance, or engineering requirement. A large cache,for example, may ameliorate a pernicious performance problem. In general, however, finding a good balance between memory consumption and other requirements is quite challenging. To do so, the development team must distinguish effective from excessive use of memory. Nick Mitchell, Gary Sevitsky |
OOPSLA | 2 |
| 2006 | Modeling Runtime Behavior in Framework-Based Applications
Nick Mitchell, Gary Sevitsky, Harini Srinivasan |
ECOOP | 2 |
| 2003 | LeakBot: An Automated and Lightweight Tool for Diagnosing Memory Leaks in Large Java Applications
Nick Mitchell, Gary Sevitsky |
ECOOP | 2 |
| 2000 | Visualizing reference patterns for solving memory leaks in JavaabstractMany Java programmers believe that they do not have to worry about memory management because of automatic garbage collection. In fact, many Java 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 referring to it. Memory leaks can be difficult to solve, since the complexity of most programs prevents us from manually verifying the validity of every reference. In this paper we show a new methodology for finding the causes of memory leaks. We have identified a basic memory leak scenario which fits many important cases. In this scenario, we allow the programmer to identify a period of time in which temporary objects are expected to be created and released. Using this information we are able to identify objects that persist beyond this period and the references which are holding on to them. Scaling this methodology to real-world systems brings additional challenges. We propose a novel combination of visual syntax and reference pattern extraction to manage this additional complexity. We also describe how these techniques can be applied to a wider class of memory problems, including the exploration of large data structures. These techniques have been implemented and have been proven successful on large projects. Copyright © 2000 John Wiley & Sons, Ltd. Wim De Pauw, Gary Sevitsky |
Concurr. Pract. Exp. | 2 |
| 1999 | Visualizing Reference Patterns for Solving Memory Leaks in Java
Wim De Pauw, Gary Sevitsky |
ECOOP | 2 |