EDBT 2026 Demo / reviewers in the wild / expert
Richard E. Jones
dblp:j/RichardJones
· DBLP profile ↗
21ranked-venue papers
3as first author
0since 2021 · last 2018
0000-0002-8159-0297ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 20 · 3 first-authorSystems, 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
7 papers |
Runtime systems and virtual machines · 68% Empirical software engineering · 18% Program verification · 7% | |
| Computer architecture, parallel and distributed computing, and storage systems
4 papers |
Distributed systems · 50% Performance modeling and evaluation · 47% Memory systems · 3% |
Topics — the 16 heaviest of 17, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Runtime systems and virtual machines
garbage collection |
0.4 | 4 | 2018 | Transactional Sapphire: Lessons in High-Performance, On-the-fly Garbage Collection · ACM Trans. Program. Lang. Syst. 2018 Beltway: Getting Around Garbage Collection Gridlock · PLDI 2002 GCspy: an adaptable heap visualisation framework · OOPSLA 2002 |
Runtime systems and virtual machines › garbage collection
concurrent copying collection |
0.3 | 1 | 2018 | Transactional Sapphire: Lessons in High-Performance, On-the-fly Garbage Collection · ACM Trans. Program. Lang. Syst. 2018 |
Empirical software engineering › software engineering research methodology
empirical study |
0.2 | 1 | 2016 | The Truth, The Whole Truth, and Nothing But the Truth: A Pragmatic Guide to Assessing Empirical Evaluations · ACM Trans. Program. Lang. Syst. 2016 |
Performance modeling and evaluation
workload characterization |
0.2 | 2 | 2012 | A black-box approach to understanding concurrency in DaCapo · OOPSLA 2012 GCspy: an adaptable heap visualisation framework · OOPSLA 2002 |
Program verification
model checking |
0.1 | 1 | 2018 | Transactional Sapphire: Lessons in High-Performance, On-the-fly Garbage Collection · ACM Trans. Program. Lang. Syst. 2018 |
Distributed systems
distributed algorithms |
0.1 | 1 | 2005 | Birrell's distributed reference listing revisited · ACM Trans. Program. Lang. Syst. 2005 |
Distributed systems › distributed object systems
distributed garbage collection |
0.1 | 1 | 2005 | Birrell's distributed reference listing revisited · ACM Trans. Program. Lang. Syst. 2005 |
Distributed systems
fault tolerance |
0.1 | 1 | 2005 | Birrell's distributed reference listing revisited · ACM Trans. Program. Lang. Syst. 2005 |
Runtime systems and virtual machines › garbage collection
generational garbage collection |
0.0 | 1 | 2002 | Beltway: Getting Around Garbage Collection Gridlock · PLDI 2002 |
Operating systems › resource management
memory management |
0.0 | 1 | 2002 | GCspy: an adaptable heap visualisation framework · OOPSLA 2002 |
Services computing and microservices › middleware
distributed objects |
0.0 | 1 | 2005 | Birrell's distributed reference listing revisited · ACM Trans. Program. Lang. Syst. 2005 |
Concurrent programming › concurrency theory › process calculi
CCS |
0.0 | 1 | 1994 | Modelling Garbage Collection Algorithms Using CCS and Temporal Logic (Abstract) · PODC 1994 |
Programming languages and type systems › language semantics
formal semantics |
0.0 | 1 | 1994 | Modelling Garbage Collection Algorithms Using CCS and Temporal Logic (Abstract) · PODC 1994 |
Visualization and visual analytics › software visualization
program behavior visualization |
0.0 | 1 | 2002 | GCspy: an adaptable heap visualisation framework · OOPSLA 2002 |
Memory systems
memory management |
0.0 | 1 | 2002 | Beltway: Getting Around Garbage Collection Gridlock · PLDI 2002 |
Logic in computer science
temporal logic |
0.0 | 1 | 1994 | Modelling Garbage Collection Algorithms Using CCS and Temporal Logic (Abstract) · PODC 1994 |
Methods — techniques the papers use, named apart from their topics
software transactions · 0.3lock-free synchronization · 0.3hardware transactions · 0.3concurrency metrics · 0.3benchmarking · 0.3state transition diagram · 0.1invariant-based proof · 0.1visualization framework · 0.1data-gathering API · 0.1belt-based collection · 0.1incremental collection · 0.0temporal logic · 0.0CCS · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2018 | Transactional Sapphire: Lessons in High-Performance, On-the-fly Garbage CollectionabstractConstructing a high-performance garbage collector is hard. Constructing a fully concurrent ‘on-the-fly’ compacting collector is much more so. We describe our experience of implementing the Sapphire algorithm as the first on-the-fly, parallel, replication copying, garbage collector for the Jikes RVM Java virtual machine (JVM). In part, we explain our innovations such as copying with hardware and software transactions, on-the-fly management of Java’s reference types, and simple, yet correct, lock-free management of volatile fields in a replicating collector. We fully evaluate, for the first time, and using realistic benchmarks, Sapphire’s performance and suitability as a low latency collector. An important contribution of this work is a detailed description of our experience of building an on-the-fly copying collector for a complete JVM with some assurance that it is correct. A key aspect of this is model checking of critical components of this complicated and highly concurrent system. Tomoharu Ugawa, Carl G. Ritson, Richard E. Jones |
ACM Trans. Program. Lang. Syst. | 3 |
| 2016 | The Truth, The Whole Truth, and Nothing But the Truth: A Pragmatic Guide to Assessing Empirical Evaluations
Steve Blackburn, Amer Diwan, Matthias Hauswirth, Peter F. Sweeney, José Nelson Amaral, Tim Brecht, Lubomír Bulej, Cliff Click, Lieven Eeckhout, Sebastian Fischmeister, Daniel Frampton, Laurie J. Hendren, Michael Hind, Antony L. Hosking, Richard E. Jones, Tomas Kalibera, Nathan Keynes, Nathaniel Nystrom, Andreas Zeller |
ACM Trans. Program. Lang. Syst. | 15 |
| 2014 | Exploring garbage collection with haswell hardware transactional memoryabstractIntel's latest processor microarchitecture, Haswell, adds support for a restricted form of transactional memory to the x86 programming model. We explore how this can be applied to three garbage collection scenarios in Jikes RVM: parallel copying, concurrent copying and bitmap marking. We demonstrate gains in concurrent copying speed over traditional synchronisation mechanisms of 48-101%. We also show how similar but portable performance gains can be achieved through software transactional memory techniques. We identify the architectural overhead of capturing sufficient work for transactional execution as a major stumbling block to the effective use of transactions in the other scenarios. Carl G. Ritson, Tomoharu Ugawa, Richard E. Jones |
ISMM | 3 |
| 2014 | Reference object processing in on-the-fly garbage collectionabstractMost proposals for on-the-fly garbage collection ignore the question of Java's weak and other reference types. However, we show that reference types are heavily used in DaCapo benchmarks. Of the few collectors that do address this issue, most block mutators, either globally or individually, while processing reference types. We introduce a new framework for processing reference types on-the-fly in Jikes RVM. Our framework supports both insertion and deletion write barriers. We have model checked our algorithm and incorporated it in our new implementation of the Sapphire on-the-fly collector. Using a deletion barrier, we process references while mutators are running in less than three times the time that previous approaches take while mutators are halted; our overall execution times are no worse, and often better. Tomoharu Ugawa, Richard E. Jones, Carl G. Ritson |
ISMM | 2 |
| 2013 | Rigorous benchmarking in reasonable timeabstractExperimental evaluation is key to systems research. Because modern systems are complex and non-deterministic, good experimental methodology demands that researchers account for uncertainty. To obtain valid results, they are expected to run many iterations of benchmarks, invoke virtual machines (VMs) several times, or even rebuild VM or benchmark binaries more than once. All this repetition costs time to complete experiments. Currently, many evaluations give up on sufficient repetition or rigorous statistical methods, or even run benchmarks only in training sizes. The results reported often lack proper variation estimates and, when a small difference between two systems is reported, some are simply unreliable. Tomas Kalibera, Richard E. Jones |
ISMM | 2 |
| 2013 | Control theory for principled heap sizingabstractWe propose a new, principled approach to adaptive heap sizing based on control theory. We review current state-of-the-art heap sizing mechanisms, as deployed in Jikes RVM and HotSpot. We then formulate heap sizing as a control problem, apply and tune a standard controller algorithm, and evaluate its performance on a set of well-known benchmarks. We find our controller adapts the heap size more responsively than existing mechanisms. This responsiveness allows tighter virtual machine memory footprints while preserving target application throughput, which is ideal for both embedded and utility computing domains. In short, we argue that formal, systematic approaches to memory management should be replacing ad-hoc heuristics as the discipline matures. Control-theoretic heap sizing is one such systematic approach. David Robert White, Jeremy Singer, Jonathan M. Aitken, Richard E. Jones |
ISMM | 4 |
| 2012 | A black-box approach to understanding concurrency in DaCapoabstractIncreasing levels of hardware parallelism are one of the main challenges for programmers and implementers of managed runtimes. Any concurrency or scalability improvements must be evaluated experimentally. However, application benchmarks available today may not reflect the highly concurrent applications we anticipate in the future. They may also behave in ways that VM developers do not expect. We provide a set of platform independent concurrency related metrics and an in-depth observational study of current state of the art benchmarks, discovering how concurrent they really are, how they scale the work and how they synchronise and communicate via shared memory. Tomas Kalibera, Matthew Mole, Richard E. Jones, Jan Vitek |
OOPSLA | 3 |
| 2011 | Handles revisited: optimising performance and memory costs in a real-time collectorabstractCompacting garbage collectors must update all references to objects they move. Updating is a lengthy operation but the updates must be transparent to the mutator. The consequence is that no space can be reclaimed until all references have been updated which, in a real-time collector, must be done incrementally. One solution is to replace direct references to objects with handles. Handles offer several advantages to a real-time collector. They eliminate the updating problem. They allow immediate reuse of the space used by evacuated objects. They incur no copy reserve overhead. However, the execution time overhead of handles has led to them being abandoned by most modern systems. Tomas Kalibera, Richard E. Jones |
ISMM | 2 |
| 2010 | The locality of concurrent write barriersabstractConcurrent and incremental collectors require barriers to ensure correct synchronisation between mutator and collector. The overheads imposed by particular barriers on particular systems have been widely studied. Somewhat fewer studies have also compared barriers in terms of their termination properties or the volume of floating garbage they generate. Until now, the consequences for locality of different barrier choices has not been studied, although locality will be of increasing importance for emerging architectures. This paper provides a study of the locality of concurrent write barriers, independent of the processor architecture, virtual machine, compiler or garbage collection algorithm. Laurence Hellyer, Richard E. Jones, Antony L. Hosking |
ISMM | 2 |
| 2010 | The economics of garbage collectionabstractThis paper argues that economic theory can improve our understanding of memory management. We introduce the allocation curve, as an analogue of the demand curve from microeconomics. An allocation curve for a program characterises how the amount of garbage collection activity required during its execution varies in relation to the heap size associated with that program. The standard treatment of microeconomic demand curves (shifts and elasticity) can be applied directly and intuitively to our new allocation curves. As an application of this new theory, we show how allocation elasticity can be used to control the heap growth rate for variable sized heaps in Jikes RVM. Jeremy Singer, Richard E. Jones, Gavin Brown 0001, Mikel Luján |
ISMM | 2 |
| 2008 | A study of java object demographicsabstractResearchers have long strived to exploit program behaviour in order to improve garbage collection efficiency. For example, by using a simple heuristic, generational GC manages short-lived objects well, although longer-lived objects will still be promoted to an older generation and may be processed repeatedly thereafter. In this paper, we provide a detailed study of Java object lifetimes which reveals a richer landscape than the generational view offers. Richard E. Jones, Chris Ryder |
ISMM | 1 |
| 2007 | Decrypting the Java gene poolabstractPretenuring long-lived and immortal objects into infrequently or never collected regions reduces garbage collection costs significantly. However, extant approaches either require computationally expensive, application-specific, off-line profiling, or consider only allocation sites common to all programs, i.e. invoked by the virtual machine rather than application programs. In contrast, we show how a simple program analysis, combined with an object lifetime knowledge bank, can be exploited to match both runtime system and application program structure with object lifetimes. The complexity of the analysis is linear in the size of the program, so need not be run ahead of time. We obtain performance gains between 6-77% in GC timeallagainst a generational copying collector for several SPEC jvm98 programs. Sebastien Marion, Richard E. Jones, Chris Ryder |
ISMM | 2 |
| 2006 | Five perspectives on modern memory management: Systems, hardware and theory
Richard E. Jones |
Sci. Comput. Program. | 1 |
| 2005 | Birrell's distributed reference listing revisitedabstractThe Java RMI collector is arguably the most widely used distributed garbage collector. Its distributed reference listing algorithm was introduced by Birrell et al. in the context of Network Objects, where the description was informal and heavily biased toward implementation. In this article, we formalize this algorithm in an implementation-independent manner, which allows us to clarify weaknesses of the initial presentation. In particular, we discover cases critical to the correctness of the algorithm that were not accounted for by Birrell. We use our formalization to derive an invariant-based proof of correctness of the algorithm that avoids notoriously difficult temporal reasoning. Furthermore, we offer a novel graphical representation of the state transition diagram, which we use to provide intuitive explanations of the algorithm and to investigate its tolerance to faults in a systematic manner. Finally, we examine how the algorithm may be optimized, either by placing constraints on message channels or by tightening the coupling between the application program and distributed garbage collector. Luc Moreau 0001, Peter Dickman, Richard E. Jones |
ACM Trans. Program. Lang. Syst. | 3 |
| 2002 | GCspy: an adaptable heap visualisation frameworkabstractGCspy is an architectural framework for the collection, transmission, storage and replay of memory management behaviour. It makes new contributions to the understanding of the dynamic memory behaviour of programming languages (and especially object-oriented languages that make heavy demands on the performance of memory managers). GCspy's architecture allows easy incorporation into any memory management system: it is not limited to garbage-collected languages. It requires only small changes to the system in which it is incorporated but provides a simple to use yet powerful data-gathering API. GCspy scales to allow very large heaps to be visualised effectively and efficiently. It allows already-running, local or remote systems to be visualised and those systems to run at full speed outside the points at which data is gathered. GCspy's visualisation tool presents this information in a number of novel ways.Deep understanding of program behaviour is essential to the design of the next generation of garbage collectors and explicit allocators. Until now, no satisfactory tools have been available to assist the implementer in gaining an understanding of heap behaviour. GCspy has been demonstrated to be a practical solution to this dilemma. It has been used to analyse production Java virtual machines running applications of realistic sizes. Its use has revealed important insights into the interaction between application program and JVM and has led to the development of better garbage collectors. Tony Printezis, Richard E. Jones |
OOPSLA | 2 |
| 2002 | Beltway: Getting Around Garbage Collection GridlockabstractWe present the design and implementation of a new garbage collection framework that significantly generalizes existing copying collectors. The Beltway framework exploits and separates object age and incrementality. It groups objects in one or more increments on queues called belts, collects belts independently, and collects increments on a belt in first-in-first-out order. We show that Beltway configurations, selected by command line options, act and perform the same as semi-space, generational, and older-first collectors, and encompass all previous copying collectors of which we are aware. The increasing reliance on garbage collected languages such as Java requires that the collector perform well. We show that the generality of Beltway enables us to design and implement new collectors that are robust to variations in heap size and improve total execution time over the best generational copying collectors of which we are aware by up to 40%, and on average by 5 to 10%, for small to moderate heap sizes. New garbage collection algorithms are rare, and yet we define not just one, but a new family of collectors that subsumes previous work. This generality enables us to explore a larger design space and build better collectors. Steve Blackburn, Richard E. Jones, Kathryn S. McKinley, J. Eliot B. Moss |
PLDI | 2 |
| 2000 | Designing a Trace Format for Heap Allocation EventsabstractDynamic storage allocation continues to play an important role in the performance and correctness of systems ranging from user productivity software to high-performance servers. While algorithms for dynamic storage allocation have been studied for decades, much of the literature is based on measuring the performance of benchmark programs unrepresentative of many important allocation-intensive workloads. Furthermore, to date no standard has emerged or been proposed for publishing and exchanging representative allocation workloads. In this paper, we describe a preliminary design of a trace format for such workloads and investigate its e#ectiveness at representing large allocation traces. Our proposal allows for a flexible encoding of information in the trace to achieve greater compression. We evaluate our preliminary design in two dimensions. First, we measure how e#ective these encodings are at reducing trace size. Second we consider how a meta-level specification language could be used... Trishul M. Chilimbi, Richard E. Jones, Benjamin G. Zorn |
ISMM | 2 |
| 1998 | Cyclic Distributed Garbage Collection with Group Merger
Helena C. C. D. Rodrigues, Richard E. Jones |
ECOOP | 2 |
| 1996 | Benchmarking Implementations of Functional Languages with 'Pseudoknot', a Float-Intensive BenchmarkabstractAbstract Over 25 implementations of different functional languages are benchmarked using the same program, a floating-point intensive application taken from molecular biology. The principal aspects studied are compile time and execution time for the various implementations that were benchmarked. An important consideration is how the program can be modified and tuned to obtain maximal performance on each language implementation. With few exceptions, the compilers take a significant amount of time to compile this program, though most compilers were faster than the then current GNU C compiler (GCC version 2.5.8). Compilers that generate C or Lisp are often slower than those that generate native code directly: the cost of compiling the intermediate form is normally a large fraction of the total compilation time. There is no clear distinction between the runtime performance of eager and lazy implementations when appropriate annotations are used: lazy implementations have clearly come of age when it comes to implementing largely strict applications, such as the Pseudoknot program. The speed of C can be approached by some implementations, but to achieve this performance, special measures such as strictness annotations are required by non-strict implementations. The benchmark results have to be interpreted with care. Firstly, a benchmark based on a single program cannot cover a wide spectrum of ‘typical’ applications. Secondly, the compilers vary in the kind and level of optimisations offered, so the effort required to obtain an optimal version of the program is similarly varied. Pieter H. Hartel, Marc Feeley, Martin Helmut Alt, Lennart Augustsson, Marcel Beemster, Emmanuel Chailloux, Christine H. Flood, Wolfgang Grieskamp, John H. G. van Groningen, Kevin Hammond, Bogumil Hausman, Melody Y. Ivory, Richard E. Jones, Jasper Kamperman, Peter Lee 0001, Xavier Leroy, Rafael Dueire Lins, Sandra Loosemore, Niklas Röjemo, Manuel Serrano, Jean-Pierre Talpin, Jon Thackray, Pum Walters, Pierre Weis, Peter Wentworth |
J. Funct. Program. | 14 |
| 1994 | Modelling Garbage Collection Algorithms Using CCS and Temporal Logic (Abstract)abstractNo abstract available. Howard Bowman, John Derrick, Richard E. Jones |
PODC | 3 |
| 1992 | Tail Recursion without Space LeaksabstractAbstract The G-machine (Johnsson, 1987; Peyton Jones, 1987) is a compiled graph reduction machine for lazy functional languages. The G-machine compiler contains many optimizations to improve performance. One set of such optimizations is designed to improve the performance of tail recursive functions. Unfortunately, the abstract machine is subject to a space leak—objects are unnecessarily preserved by the garbage collector. This paper analyses why a particular form of space leak occurs in the G-machine, and presents some ideas for fixing this problem. This phenomena in other abstract machines is also examined briefly. Richard E. Jones |
J. Funct. Program. | 1 |