• Publications
  • Influence
The DaCapo benchmarks: java benchmarking development and analysis
This paper recommends benchmarking selection and evaluation methodologies, and introduces the DaCapo benchmarks, a set of open source, client-side Java benchmarks that improve over SPEC Java in a variety of ways, including more complex code, richer object behaviors, and more demanding memory system requirements. Expand
Hoard: a scalable memory allocator for multithreaded applications
Hoard is the first allocator to simultaneously solve the above problems, and combines one global heap and per-processor heaps with a novel discipline that provably bounds memory consumption and has very low synchronization costs in the common case. Expand
Tile size selection using cache organization and data layout
This paper presents a new algorithm for choosing problem-size dependent tile sizes based on the cache size and cache line size for a direct-mapped cache that eliminates both capacity and self-interference misses and reduces cross-Interference misses. Expand
Scaling to the end of silicon with EDGE architectures
The TRIPS architecture is the first instantiation of an EDGE instruction set, a new, post-RISC class of instruction set architectures intended to match semiconductor technology evolution over the next decade, scaling to new levels of power efficiency and high performance. Expand
The Jikes Research Virtual Machine project: Building an open-source research community
This paper describes the evolution of the JikesTM Research Virtual Machine project from an IBM internal research project, called Jalapeno, into an open-source project. After summarizing the originalExpand
Oil and water? High performance garbage collection in Java with MMTk
MMTk is an efficient, composable, extensible, and portable framework for building garbage collectors that uses design patterns and compiler cooperation to combine modularity and efficiency and suggests that performance critical software can embrace modular design and high-level languages. Expand
Lase: Locating and applying systematic edits by learning from examples
The results indicate that LASE should help developers in automating systematic editing, as it is the first to do both for nontrivial program edits. Expand
Improving data locality with loop transformations
This article presents compiler optimizations to improve data locality based on a simple yet accurate cost model and finds performance improvements were difficult to achieve, but improved several programs. Expand
Dynamic software updates: a VM-centric approach
The design and implementation of Jvolve, a DSU-enhanced Java VM that can support 20 of 22 updates to three open-source programs--Jetty web server, JavaEmailServer, and CrossFTP server--based on actual releases occurring over 1 to 2 years are presented. Expand
Myths and realities: the performance impact of garbage collection
This paper explores and quantifies garbage collection behavior for three whole heap collectors and generational counterparts: copying semi-space, mark-sweep, and reference counting, the canonicalExpand