Demo Data from EDBT 2026 / reviewers in the wild / expert
Daniel Frampton
dblp:16/5253
· DBLP profile ↗
15ranked-venue papers
2as first author
0since 2021 · last 2016
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 13 · 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.
| Computer architecture, parallel and distributed computing, and storage systems
4 papers |
Parallel and multicore computing · 36% Memory systems · 32% Performance modeling and evaluation · 24% | |
| Software engineering, system software, and programming languages
6 papers |
Empirical software engineering · 37% Runtime systems and virtual machines · 28% Operating systems · 25% |
Topics — the 13 heaviest of 17, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
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 |
Runtime systems and virtual machines
garbage collection |
0.2 | 2 | 2010 | Z-rays: divide arrays and conquer speed and flexibility · PLDI 2010 Free-Me: a static analysis for automatic individual object reclamation · PLDI 2006 |
Parallel and multicore computing
parallel programming models and runtimes |
0.1 | 1 | 2012 | Work-stealing without the baggage · OOPSLA 2012 |
Parallel and multicore computing › load balancing › dynamic load balancing
work stealing |
0.1 | 1 | 2012 | Work-stealing without the baggage · OOPSLA 2012 |
Operating systems › resource management
memory management |
0.1 | 1 | 2011 | Why nothing matters: the impact of zeroing · OOPSLA 2011 |
Memory systems
cache management |
0.1 | 1 | 2011 | Why nothing matters: the impact of zeroing · OOPSLA 2011 |
Memory systems
memory management |
0.1 | 1 | 2010 | Z-rays: divide arrays and conquer speed and flexibility · PLDI 2010 |
Program analysis › static analysis
pointer analysis |
0.1 | 1 | 2006 | Free-Me: a static analysis for automatic individual object reclamation · PLDI 2006 |
Performance modeling and evaluation
benchmarking |
0.1 | 1 | 2006 | The DaCapo benchmarks: java benchmarking development and analysis · OOPSLA 2006 |
Performance modeling and evaluation › benchmarking › benchmark design
benchmark suite design |
0.1 | 1 | 2006 | The DaCapo benchmarks: java benchmarking development and analysis · OOPSLA 2006 |
Performance modeling and evaluation
workload characterization |
0.1 | 1 | 2006 | The DaCapo benchmarks: java benchmarking development and analysis · OOPSLA 2006 |
Operating systems › resource management › process management
CPU scheduling |
0.0 | 1 | 2012 | Work-stealing without the baggage · OOPSLA 2012 |
Cloud and datacenter computing › resource management › real-time resource allocation
real-time memory management |
0.0 | 1 | 2010 | Z-rays: divide arrays and conquer speed and flexibility · PLDI 2010 |
Methods — techniques the papers use, named apart from their topics
runtime scheduling · 0.3performance evaluation · 0.2indirection pointers · 0.2array virtualization · 0.2work-stealing · 0.1work stealing · 0.1time-series metrics · 0.1statistical metrics · 0.1pointer analysis · 0.1liveness analysis · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 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. | 11 |
| 2012 | Down for the count? Getting reference counting back in the ringabstractReference counting and tracing are the two fundamental approaches that have underpinned garbage collection since 1960. However, despite some compelling advantages, reference counting is almost completely ignored in implementations of high performance systems today. In this paper we take a detailed look at reference counting to understand its behavior and to improve its performance. We identify key design choices for reference counting and analyze how the behavior of a wide range of benchmarks might affect design decisions. As far as we are aware, this is the first such quantitative study of reference counting. We use insights gleaned from this analysis to introduce a number of optimizations that significantly improve the performance of reference counting. Rifat Shahriyar, Steve Blackburn, Daniel Frampton |
ISMM | 3 |
| 2012 | Barriers reconsidered, friendlier still!abstractRead and write barriers mediate access to the heap allowing the collector to control and monitor mutator actions. For this reason, barriers are a powerful tool in the design of any heap management algorithm, but the prevailing wisdom is that they impose significant costs. However, changes in hardware and workloads make these costs a moving target. Here, we measure the cost of a range of useful barriers on a range of modern hardware and workloads. We confirm some old results and overturn others. We evaluate the microarchitectural sensitivity of barrier performance and the differences among benchmark suites. We also consider barriers in context, focusing on their behavior when used in combination, and investigate a known pathology and evaluate solutions. Our results show that read and write barriers have average overheads as low as 5.4% and 0.9% respectively. We find that barrier overheads are more exposed on the workload provided by the modern DaCapo benchmarks than on old SPECjvm98 benchmarks. Moreover, there are differences in barrier behavior between in-order and out-of- order machines, and their respective memory subsystems, which indicate different barrier choices for different platforms. These changing costs mean that algorithm designers need to reconsider their design choices and the nature of their resulting algorithms in order to exploit the opportunities presented by modern hardware. Xi Yang 0021, Steve Blackburn, Daniel Frampton, Antony L. Hosking |
ISMM | 3 |
| 2012 | Work-stealing without the baggageabstractWork-stealing is a promising approach for effectively exploiting software parallelism on parallel hardware. A programmer who uses work-stealing explicitly identifies potential parallelism and the runtime then schedules work, keeping otherwise idle hardware busy while relieving overloaded hardware of its burden. Prior work has demonstrated that work-stealing is very effective in practice. However, work-stealing comes with a substantial overhead: as much as 2x to 12x slowdown over orthodox sequential code. Vivek Kumar 0001, Daniel Frampton, Steve Blackburn, David Grove, Olivier Tardieu |
OOPSLA | 2 |
| 2012 | Unpicking the knot: teasing apart VM/application interdependenciesabstractFlexible and efficient runtime design requires an understanding of the dependencies among the components internal to the runtime and those between the application and the runtime. These dependencies are frequently unclear. This problem exists in all runtime design, and is most vivid in a metacircular runtime --- one that is implemented in terms of itself. Metacircularity blurs boundaries between application and runtime implementation, making it harder to understand and make guarantees about overall system behavior, affecting isolation, security, and resource management, as well as reducing opportunities for optimization. Our goal is to shed new light on VM interdependencies, helping all VM designers understand these dependencies and thereby engineer better runtimes. We explore these issues in the context of a high-performance Java-in-Java virtual machine. Our approach is to identify and instrument transition points into and within the runtime, which allows us to establish a dynamic execution context. Our contributions are: 1) implementing and measuring a system that dynamically maintains execution context with very low overhead, 2) demonstrating that such a framework can be used to improve the software engineering of an existing runtime, and 3) analyzing the behavior and runtime characteristics of our runtime across a wide range of benchmarks. Our solution provides clarity about execution state and allowable transitions, making it easier to develop, debug, and understand managed runtimes. Steve Blackburn, Daniel Frampton |
VEE | 3 |
| 2011 | A comprehensive evaluation of object scanning techniquesabstractAt the heart of all garbage collectors lies the process of identifying and processing reference fields within an object. Despite its key role, and evidence of many different implementation approaches, to our knowledge no comprehensive quantitative study of this design space exists. The lack of such a study means that implementers must rely on `conventional wisdom', hearsay, and their own costly analysis. Starting with mechanisms described in the literature and a variety of permutations of these, we explore the impact of a number of dimensions including: a) the choice of data structure, b) levels of indirection from object to metadata, and c) specialization of scanning code. We perform a comprehensive examination of these tradeoffs on four different architectures using eighteen benchmarks and hardware performance counters. We inform the choice of mechanism with a detailed study of heap composition and object structure as seen by the garbage collector on these benchmarks. Our results show that choice of scanning mechanism is important. We find that a careful choice of scanning mechanism alone can improve garbage collection performance by 16% and total time by 2.5%, on average, over a well tuned baseline. We observe substantial variation in performance among architectures, and find that some mechanisms--particularly specialization, layout of reference fields in objects, and encoding metadata in object headers--yield consistent, significant advantages. Robin Garner, Steve Blackburn, Daniel Frampton |
ISMM | 3 |
| 2011 | Why nothing matters: the impact of zeroingabstractMemory safety defends against inadvertent and malicious misuse of memory that may compromise program correctness and security. A critical element of memory safety is zero initialization. The direct cost of zero initialization is surprisingly high: up to 12.7%, with average costs ranging from 2.7 to 4.5% on a high performance virtual machine on IA32 architectures. Zero initialization also incurs indirect costs due to its memory bandwidth demands and cache displacement effects. Existing virtual machines either: a) minimize direct costs by zeroing in large blocks, or b) minimize indirect costs by zeroing in the allocation sequence, which reduces cache displacement and bandwidth. This paper evaluates the two widely used zero initialization designs, showing that they make different tradeoffs to achieve very similar performance. Our analysis inspires three better designs: (1) bulk zeroing with cache-bypassing (non-temporal) instructions to reduce the direct and indirect zeroing costs simultaneously, (2) concurrent non-temporal bulk zeroing that exploits parallel hardware to move work off the application's critical path, and (3) adaptive zeroing, which dynamically chooses between (1) and (2) based on available hardware parallelism. The new software strategies offer speedups sometimes greater than the direct overhead, improving total performance by 3% on average. Our findings invite additional optimizations and microarchitectural support. Xi Yang 0021, Steve Blackburn, Daniel Frampton, Jennifer B. Sartor, Kathryn S. McKinley |
OOPSLA | 3 |
| 2010 | Z-rays: divide arrays and conquer speed and flexibilityabstractArrays are the ubiquitous organization for indexed data. Throughout programming language evolution, implementations have laid out arrays contiguously in memory. This layout is problematic in space and time. It causes heap fragmentation, garbage collection pauses in proportion to array size, and wasted memory for sparse and over-provisioned arrays. Because of array virtualization in managed languages, an array layout that consists of indirection pointers to fixed-size discontiguous memory blocks can mitigate these problems transparently. This design however incurs significant overhead, but is justified when real-time deadlines and space constraints trump performance. Jennifer B. Sartor, Steve Blackburn, Daniel Frampton, Martin Hirzel, Kathryn S. McKinley |
PLDI | 3 |
| 2009 | Demystifying magic: high-level low-level programmingabstractThe power of high-level languages lies in their abstraction over hardware and software complexity, leading to greater security, better reliability, and lower development costs. However, opaque abstractions are often show-stoppers for systems programmers, forcing them to either break the abstraction, or more often, simply give up and use a different language. This paper addresses the challenge of opening up a high-level language to allow practical low-level programming without forsaking integrity or performance. Daniel Frampton, Steve Blackburn, Perry Cheng, Robin Garner, David Grove, J. Eliot B. Moss, Sergey I. Salishev |
VEE | 1 |
| 2007 | Generational Real-Time Garbage Collection
Daniel Frampton, David F. Bacon, Perry Cheng, David Grove |
ECOOP | 1 |
| 2007 | Effective prefetch for mark-sweep garbage collectionabstractGarbage collection is a performance-critical feature of most modern object oriented languages, and is characterized by poor locality since it must traverse the heap. In this paperwe show that by combining two very simple ideas wecan significantly improve the performance of the canonical mark-sweep collector, resulting in improvements in application performance. We make three main contributions: 1) we develop a methodology and framework for accurately and deterministically analyzing the tracing loop at the heart ofthe collector, 2) we offer a number of insights and improvements over conventional design choices for mark-sweep collectors, and 3) we find that two simple ideas: edge order traversal and software prefetch. combine to greatly improve garbage collection performance although each is unproductive in isolation. We perform a thorough analysis in the context of MMTk and Jikes RVM on a wide range of benchmarks and four different architectures. Our baseline system (which includes a number of our improvements) is very competitive with highly tuned alternatives. We show a simple marking mechanism which offers modest but consistent improvements over conventional choices. Finally, we show that enqueuing the edges pointers) of the object graph rather than the nodes (objects) significantly increases opportunities for software prefetch, despite increasing the total number of queue operations. Combining edge ordered enqueuing with software prefetching yields average performance improvements over a large suite of benchmarks of 20-30% in garbage collection time and 4-6% of total application performance in moderate heaps, across four architectures. Robin Garner, Steve Blackburn, Daniel Frampton |
ISMM | 3 |
| 2007 | Stopless: a real-time garbage collector for multiprocessorsabstractWe present Stopless: a concurrent real-time garbage collector suitable for modern multiprocessors running parallel multithreaded applications. Creating a garbage-collected environment that supports real-time on modern platforms is notoriously hard,especially if real-time implies lock-freedom. Known real-time collectors either restrict the real-time guarantees to uniprocessors only, rely on special hardware, or just give up supporting atomic operations (which are crucial for lock-free software). Stopless is the first collector that provides real-time responsiveness while preserving lock-freedom, supporting atomic operations, controlling fragmentation by compaction, and supporting modern parallel platforms. Stopless is adequate for modern languages such as C# or Java. It was implemented on top of the Bartok compiler and runtime for C# and measurements demonstrate high responsiveness (a factor of a 100 better than previously published systems), virtually no pause times, good mutator utilization, and acceptable overheads. Filip Pizlo, Daniel Frampton, Erez Petrank, Bjarne Steensgaard |
ISMM | 2 |
| 2006 | Demonstration: On-Line Visualization and Analysis of Real-Time Systems with TuningFork
David F. Bacon, Perry Cheng, Daniel Frampton, David Grove, Matthias Hauswirth, V. T. Rajan |
CC | 3 |
| 2006 | The DaCapo benchmarks: java benchmarking development and analysisabstractSince benchmarks drive computer science research and industry product development, which ones we use and how we evaluate them are key questions for the community. Despite complex runtime tradeoffs due to dynamic compilation and garbage collection required for Java programs, many evaluations still use methodologies developed for C, C++, and Fortran. SPEC, the dominant purveyor of benchmarks, compounded this problem by institutionalizing these methodologies for their Java benchmark suite. This paper recommends benchmarking selection and evaluation methodologies, and introduces the DaCapo benchmarks, a set of open source, client-side Java benchmarks. We demonstrate that the complex interactions of (1) architecture, (2) compiler, (3) virtual machine, (4) memory management, and (5) application require more extensive evaluation than C, C++, and Fortran which stress (4) much less, and do not require (3). We use and introduce new value, time-series, and statistical metrics for static and dynamic properties such as code complexity, code size, heap composition, and pointer mutations. No benchmark suite is definitive, but these metrics show that DaCapo improves over SPEC Java in a variety of ways, including more complex code, richer object behaviors, and more demanding memory system requirements. This paper takes a step towards improving methodologies for choosing and evaluating benchmarks to foster innovation in system design and implementation for Java and other managed languages. Steve Blackburn, Robin Garner, Chris Hoffmann, Asjad M. Khan, Kathryn S. McKinley, Rotem Bentzur, Amer Diwan, Daniel Feinberg, Daniel Frampton, Samuel Z. Guyer, Martin Hirzel, Antony L. Hosking, Maria Jump, Han Bok Lee, J. Eliot B. Moss, Aashish Phansalkar, Darko Stefanovic, Thomas VanDrunen, Daniel von Dincklage, Ben Wiedermann |
OOPSLA | 9 |
| 2006 | Free-Me: a static analysis for automatic individual object reclamationabstractGarbage collection has proven benefits, including fewer memory related errors and reduced programmer effort. Garbage collection, however, trades space for time. It reclaims memory only when it is invoked: invoking it more frequently reclaims memory quickly, but incurs a significant cost; invoking it less frequently fills memory with dead objects. In contrast, explicit memory management provides prompt low cost reclamation, but at the expense of programmer effort.This work comes closer to the best of both worlds by adding novel compiler and runtime support for compiler inserted frees to a garbage-collected system. The compiler's free-me analysis identifies when objects become unreachable and inserts calls to free. It combines a lightweight pointer analysis with liveness information that detects when short-lived objects die. Our approach differs from stack and region allocation in two crucial ways. First, it frees objects incrementally exactly when they become unreachable, instead of based on program scope. Second, our system does not require allocation-site lifetime homogeneity, and thus frees objects on some paths and not on others. It also handles common patterns: it can free objects in loops and objects created by factory methods.We evaluate free() variations for free-list and bump-pointer allocators. Explicit freeing improves performance by promptly reclaiming objects and reducing collection load. Compared to marksweep alone, free-me cuts total time by 22% on average, collector time by 50% to 70%, and allows programs to run in 17% less memory. This combination retains the software engineering benefits of garbage collection while increasing space efficiency and improving performance, and thus is especially appealing for real-time and space constrained systems. Samuel Z. Guyer, Kathryn S. McKinley, Daniel Frampton |
PLDI | 3 |