Richard E. Jones

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

TopicWeightPapersLastEvidence papers
Runtime systems and virtual machines
garbage collection
0.442018
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.312018
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.212016
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.222012
A black-box approach to understanding concurrency in DaCapo · OOPSLA 2012
GCspy: an adaptable heap visualisation framework · OOPSLA 2002
Program verification
model checking
0.112018
Transactional Sapphire: Lessons in High-Performance, On-the-fly Garbage Collection · ACM Trans. Program. Lang. Syst. 2018
Distributed systems
distributed algorithms
0.112005
Birrell's distributed reference listing revisited · ACM Trans. Program. Lang. Syst. 2005
Distributed systems › distributed object systems
distributed garbage collection
0.112005
Birrell's distributed reference listing revisited · ACM Trans. Program. Lang. Syst. 2005
Distributed systems
fault tolerance
0.112005
Birrell's distributed reference listing revisited · ACM Trans. Program. Lang. Syst. 2005
Runtime systems and virtual machines › garbage collection
generational garbage collection
0.012002
Beltway: Getting Around Garbage Collection Gridlock · PLDI 2002
Operating systems › resource management
memory management
0.012002
GCspy: an adaptable heap visualisation framework · OOPSLA 2002
Services computing and microservices › middleware
distributed objects
0.012005
Birrell's distributed reference listing revisited · ACM Trans. Program. Lang. Syst. 2005
Concurrent programming › concurrency theory › process calculi
CCS
0.011994
Modelling Garbage Collection Algorithms Using CCS and Temporal Logic (Abstract) · PODC 1994
Programming languages and type systems › language semantics
formal semantics
0.011994
Modelling Garbage Collection Algorithms Using CCS and Temporal Logic (Abstract) · PODC 1994
Visualization and visual analytics › software visualization
program behavior visualization
0.012002
GCspy: an adaptable heap visualisation framework · OOPSLA 2002
Memory systems
memory management
0.012002
Beltway: Getting Around Garbage Collection Gridlock · PLDI 2002
Logic in computer science
temporal logic
0.011994
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
YearPublicationVenuePosition
2018 Transactional Sapphire: Lessons in High-Performance, On-the-fly Garbage Collection
abstract
Constructing 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 memory
abstract
Intel'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
ISMM3
2014 Reference object processing in on-the-fly garbage collection
abstract
Most 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
ISMM2
2013 Rigorous benchmarking in reasonable time
abstract
Experimental 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
ISMM2
2013 Control theory for principled heap sizing
abstract
We 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
ISMM4
2012 A black-box approach to understanding concurrency in DaCapo
abstract
Increasing 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
OOPSLA3
2011 Handles revisited: optimising performance and memory costs in a real-time collector
abstract
Compacting 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
ISMM2
2010 The locality of concurrent write barriers
abstract
Concurrent 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
ISMM2
2010 The economics of garbage collection
abstract
This 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
ISMM2
2008 A study of java object demographics
abstract
Researchers 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
ISMM1
2007 Decrypting the Java gene pool
abstract
Pretenuring 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
ISMM2
2006 Five perspectives on modern memory management: Systems, hardware and theory
Richard E. Jones
Sci. Comput. Program.1
2005 Birrell's distributed reference listing revisited
abstract
The 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 framework
abstract
GCspy 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
OOPSLA2
2002 Beltway: Getting Around Garbage Collection Gridlock
abstract
We 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
PLDI2
2000 Designing a Trace Format for Heap Allocation Events
abstract
Dynamic 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
ISMM2
1998 Cyclic Distributed Garbage Collection with Group Merger
Helena C. C. D. Rodrigues, Richard E. Jones
ECOOP2
1996 Benchmarking Implementations of Functional Languages with 'Pseudoknot', a Float-Intensive Benchmark
abstract
Abstract 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)
abstract
No abstract available.
Howard Bowman, John Derrick, Richard E. Jones
PODC3
1992 Tail Recursion without Space Leaks
abstract
Abstract 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