EDBT 2026 Demo / reviewers in the wild / expert
Dries Buytaert
dblp:60/1469
· DBLP profile ↗
7ranked-venue papers
2as first author
0since 2021 · last 2008
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 5 · 1 first-authorSystems, architecture and hardware · 2 · 1 first-author
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
4 papers |
Runtime systems and virtual machines · 46% Program analysis · 39% Compilers and program optimization · 15% | |
| Computer architecture, parallel and distributed computing, and storage systems
5 papers |
Performance modeling and evaluation · 100% |
Topics — the 10 heaviest of 10, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Performance modeling and evaluation
workload characterization |
0.1 | 3 | 2008 | Java performance evaluation through rigorous replay compilation · OOPSLA 2008 Method-level phase behavior in java workloads · OOPSLA 2004 Javana: a system for building customized Java program analysis tools · OOPSLA 2006 |
Runtime systems and virtual machines › virtual machine implementation
java virtual machine |
0.1 | 3 | 2007 | Statistically rigorous java performance evaluation · OOPSLA 2007 Javana: a system for building customized Java program analysis tools · OOPSLA 2006 Method-level phase behavior in java workloads · OOPSLA 2004 |
Performance modeling and evaluation
benchmarking |
0.1 | 2 | 2008 | Java performance evaluation through rigorous replay compilation · OOPSLA 2008 Statistically rigorous java performance evaluation · OOPSLA 2007 |
Runtime systems and virtual machines
dynamic compilation |
0.1 | 1 | 2007 | Using hpm-sampling to drive dynamic compilation · OOPSLA 2007 |
Compilers and program optimization › dynamic optimization
profile-guided optimization |
0.1 | 1 | 2007 | Using hpm-sampling to drive dynamic compilation · OOPSLA 2007 |
Program analysis
dynamic analysis |
0.1 | 1 | 2006 | Javana: a system for building customized Java program analysis tools · OOPSLA 2006 |
Program analysis › dynamic analysis
dynamic binary instrumentation |
0.1 | 1 | 2006 | Javana: a system for building customized Java program analysis tools · OOPSLA 2006 |
Program analysis › dynamic analysis
profiling |
0.1 | 1 | 2006 | Javana: a system for building customized Java program analysis tools · OOPSLA 2006 |
Performance modeling and evaluation › performance monitoring
hardware performance monitoring |
0.0 | 1 | 2007 | Using hpm-sampling to drive dynamic compilation · OOPSLA 2007 |
Performance modeling and evaluation › tracing
memory reference tracing |
0.0 | 1 | 2006 | Javana: a system for building customized Java program analysis tools · OOPSLA 2006 |
Methods — techniques the papers use, named apart from their topics
statistical analysis · 0.1hardware performance monitor sampling · 0.1benchmarking · 0.1instrumentation · 0.1dynamic binary instrumentation · 0.1hardware performance monitoring · 0.1dynamic call graph analysis · 0.1replay compilation · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2008 | Java performance evaluation through rigorous replay compilationabstractA managed runtime environment, such as the Java virtual machine, is non-trivial to benchmark. Java performance is affected in various complex ways by the application and its input, as well as by the virtual machine (JIT optimizer, garbage collector, thread scheduler, etc.). In addition, non-determinism due to timer-based sampling for JIT optimization, thread scheduling, and various system effects further complicate the Java performance benchmarking process. Andy Georges, Lieven Eeckhout, Dries Buytaert |
OOPSLA | 3 |
| 2007 | Using hpm-sampling to drive dynamic compilationabstractAll high-performance production JVMs employ an adaptive strategy for program execution. Methods are first executed unoptimized and then an online profiling mechanism is used to find a subset of methods that should be optimized during the same execution. This paper empirically evaluates the design space of several profilers for initiating dynamic compilation and shows that existing online profiling schemes suffer from several limitations. They provide an insufficient number of samples, are untimely, and have limited accuracy at determining the frequently executed methods. We describe and comprehensively evaluate HPM-sampling, a simple but effective profiling scheme for finding optimization candidates using hardware performance monitors (HPMs) that addresses the aforementioned limitations. We show that HPM-sampling is more accurate; has low overhead; and improves performance by 5.7% on average and up to 18.3% when compared to the default system in Jikes RVM, without changing the compiler. Dries Buytaert, Andy Georges, Michael Hind, Matthew Arnold, Lieven Eeckhout, Koen De Bosschere |
OOPSLA | 1 |
| 2007 | Statistically rigorous java performance evaluationabstractJava performance is far from being trivial to benchmark because it is affected by various factors such as the Java application, its input, the virtual machine, the garbage collector, the heap size, etc. In addition, non-determinism at run-time causes the execution time of a Java program to differ from run to run. There are a number of sources of non-determinism such as Just-In-Time (JIT) compilation and optimization in the virtual machine (VM) driven by timer-based method sampling, thread scheduling, garbage collection, and various. Andy Georges, Dries Buytaert, Lieven Eeckhout |
OOPSLA | 2 |
| 2006 | Javana: a system for building customized Java program analysis toolsabstractUnderstanding the behavior of applications running on high-level language virtual machines, as is the case in Java, is non-trivial because of the tight entanglement at the lowest execution level between the application and the virtual machine. This paper proposes Javana, a system for building Java program analysis tools. Javana provides an easy-to-use instrumentation infrastructure that allows for building customized profiling tools very quickly.Javana runs a dynamic binary instrumentation tool underneath the virtual machine. The virtual machine communicates with the instrumentation layer through an event handling mechanism for building a vertical map that links low-level native instruction pointers and memory addresses to high-level language concepts such as objects, methods, threads, lines of code, etc. The dynamic binary instrumentation tool then intercepts all memory accesses and instructions executed and provides the Javana end user with high-level language information for all memory accesses and natively executed instructions.We demonstrate the power of Javana through a number of applications: memory address tracing, vertical cache simulation and object lifetime computation. For each of these applications, the instrumentation specification requires only a small number of lines of code. Developing similarly powerful profiling tools within a virtual machine (as done in current practice) is both time-consuming and error-prone; in addition, the accuracy of the obtained profiling results might be questionable as we show in this paper. Jonas Maebe, Dries Buytaert, Lieven Eeckhout, Koen De Bosschere |
OOPSLA | 2 |
| 2005 | FPGA-Aware Garbage Collection in JavaabstractDuring codesign of a system, one still runs into the impedance mismatch between the software and hardware worlds. This paper identifies the different levels of abstraction of hardware and software as a major culprit of this mismatch. For example, when programming in high-level object-oriented languages like Java, one has disposal of objects, methods, memory management, that facilitates development but these have to be largely abandoned when moving the same functionality into hardware. As a solution, this paper presents a virtual machine, based on the Jikes Research Virtual Machine, that is able to bridge the gap by providing the same capabilities to hardware components as to software components. This seamless integration is achieved by introducing an architecture and protocol that allow reconfigurable hardware and software to communicate with each other in a transparent manner i.e. no component of the design needs to be aware whether other components are implemented in hardware or in software. Further, in this paper we present a novel technique that allows reconfigurable hardware to manage dynamically allocated memory. This is achieved by allowing the hardware to hold references to objects and by modifying the garbage collector of the virtual machine to be aware of these references in hardware. We present benchmark results that show, for four different, well-known garbage collectors and for a wide range of applications, that a hardware-aware garbage collector results in a marginal overhead and is therefore a worthwhile addition to the developer's toolbox. Philippe Faes, Mark Christiaens, Dries Buytaert, Dirk Stroobandt |
FPL | 3 |
| 2005 | Garbage Collection Hints
Dries Buytaert, Kris Venstermans, Lieven Eeckhout, Koen De Bosschere |
HiPEAC | 1 |
| 2004 | Method-level phase behavior in java workloadsabstractJava workloads are becoming more and more prominent on various computing devices. Understanding the behavior of a Java workload which includes the interaction between the application and the virtual machine (VM), is thus of primary importance during performance analysis and optimization. Moreover, as contemporary software projects are increasing in complexity, automatic performance analysis techniques are indispensable. This paper proposes an off-line method-level phase analysis approach for Java workloads that consists of three steps. In the first step, the execution time is computed for each method invocation. Using an off-line tool, we subsequently analyze the dynamic call graph (that is annotated with the method invocations' execution times) to identify method-level phases. Finally, we measure performance characteristics for each of the selected phases. This is done using hardware performance monitors. As such, our approach allows for linking microprocessor-level information at the individual methods in the Java application's source code. This is extremely interesting information during performance analysis and optimization as programmers can use this information to optimize their code. We evaluate our approach in the Jikes RVM on an IA-32 platform using the SPECjvm98 and SPECjbb2000 benchmarks. This is done according to a number of important criteria: the overhead during profiling, the variability within and between the phases, its applicability in Java workload characterization (measuring performance characteristics of the various VM components) and application bottleneck identification. Andy Georges, Dries Buytaert, Lieven Eeckhout, Koen De Bosschere |
OOPSLA | 2 |