Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Dries Buytaert

dblp:60/1469 · DBLP profile ↗
← Back
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

TopicWeightPapersLastEvidence papers
Performance modeling and evaluation
workload characterization
0.132008
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.132007
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.122008
Java performance evaluation through rigorous replay compilation · OOPSLA 2008
Statistically rigorous java performance evaluation · OOPSLA 2007
Runtime systems and virtual machines
dynamic compilation
0.112007
Using hpm-sampling to drive dynamic compilation · OOPSLA 2007
Compilers and program optimization › dynamic optimization
profile-guided optimization
0.112007
Using hpm-sampling to drive dynamic compilation · OOPSLA 2007
Program analysis
dynamic analysis
0.112006
Javana: a system for building customized Java program analysis tools · OOPSLA 2006
Program analysis › dynamic analysis
dynamic binary instrumentation
0.112006
Javana: a system for building customized Java program analysis tools · OOPSLA 2006
Program analysis › dynamic analysis
profiling
0.112006
Javana: a system for building customized Java program analysis tools · OOPSLA 2006
Performance modeling and evaluation › performance monitoring
hardware performance monitoring
0.012007
Using hpm-sampling to drive dynamic compilation · OOPSLA 2007
Performance modeling and evaluation › tracing
memory reference tracing
0.012006
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
YearPublicationVenuePosition
2008 Java performance evaluation through rigorous replay compilation
abstract
A 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
OOPSLA3
2007 Using hpm-sampling to drive dynamic compilation
abstract
All 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
OOPSLA1
2007 Statistically rigorous java performance evaluation
abstract
Java 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
OOPSLA2
2006 Javana: a system for building customized Java program analysis tools
abstract
Understanding 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
OOPSLA2
2005 FPGA-Aware Garbage Collection in Java
abstract
During 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
FPL3
2005 Garbage Collection Hints
Dries Buytaert, Kris Venstermans, Lieven Eeckhout, Koen De Bosschere
HiPEAC1
2004 Method-level phase behavior in java workloads
abstract
Java 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
OOPSLA2