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.

Robert O'Callahan

dblp:51/623 · DBLP profile ↗
← Back
7ranked-venue papers
4as first author
0since 2021 · last 2017
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 5 · 2 first-authorSystems, architecture and hardware · 2 · 2 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
6 papers
Debugging and program repair · 43% Program analysis · 32% Concurrent programming · 14%

Topics — the 10 heaviest of 11, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Debugging and program repair
record and replay
0.312017
Engineering Record and Replay for Deployability · USENIX ATC 2017
Program analysis
dynamic analysis
0.142005
Relational queries over program traces · OOPSLA 2005
Object equality profiling · OOPSLA 2003
Efficient and Precise Datarace Detection for Multithreaded Object-Oriented Programs · PLDI 2002
Concurrent programming › concurrency bug detection
data race detection
0.122003
Hybrid dynamic data race detection · PPoPP 2003
Efficient and Precise Datarace Detection for Multithreaded Object-Oriented Programs · PLDI 2002
Program analysis › dynamic analysis
instrumentation
0.112005
Relational queries over program traces · OOPSLA 2005
Debugging and program repair › performance debugging
performance bug detection
0.112005
Relational queries over program traces · OOPSLA 2005
Program analysis › dynamic analysis
program tracing
0.112005
Relational queries over program traces · OOPSLA 2005
Operating systems › resource management
memory management
0.012003
Object equality profiling · OOPSLA 2003
Concurrent programming › concurrency bug detection › data race detection
dynamic race detection
0.012002
Efficient and Precise Datarace Detection for Multithreaded Object-Oriented Programs · PLDI 2002
Software maintenance and evolution
program comprehension
0.011997
Lackwit: A Program Understanding Tool Based on Type Inference · ICSE 1997
Programming languages and type systems
type inference
0.011997
Lackwit: A Program Understanding Tool Based on Type Inference · ICSE 1997

Methods — techniques the papers use, named apart from their topics

dynamic analysis · 0.1relational queries · 0.1lockset analysis · 0.0happens-before analysis · 0.0equivalence class partitioning · 0.0static analysis · 0.0type inference · 0.0
YearPublicationVenuePosition
2017 Engineering Record and Replay for Deployability
Robert O'Callahan, Nathan Froyd, Kyle Huey, Albert Noll, Nimrod Partush
USENIX ATC1
2012 Why is your web browser using so much memory?
abstract
Browsers are the operating systems of the Web. They support a vast universe of applications written in a modern garbage-collected programming language. Browsers expose a rich platform API mostly implemented in C++. Browsers are also consumer software with low switching costs in an intensely competitive market. Thus in addition to standard requirements such as maximizing throughput and minimizing latency, browsers have to consider issues like-when the user closes a window while watching Task Manager, they want to see memory usage go down. Browsers have to compete to minimize memory usage even for poorly written applications. In this talk I will elucidate these requirements and describe how Firefox and other browsers address them. I will pay particular attention to issues that we don't know how to solve, and that could benefit from research attention.
Robert O'Callahan
ISMM1
2005 Relational queries over program traces
abstract
Instrumenting programs with code to monitor runtime behavior is a common technique for profiling and debugging. In practice, instrumentation is either inserted manually by programmers, or automatically by specialized tools that monitor particular properties. We propose Program Trace Query Language (PTQL), a language based on relational queries over program traces, in which programmers can write expressive, declarative queries about program behavior. We also describe our compiler, Partiqle. Given a PTQL query and a Java program, Partiqle instruments the program to execute the query on-line. We apply several PTQL queries to a set of benchmark programs, including the Apache Tomcat Web server. Our queries reveal significant performance bugs in the jack SpecJVM98 benchmark, in Tomcat, and in the IBM Java class library, as well as some correct though uncomfortably subtle code in the Xerces XML parser. We present performance measurements demonstrating that our prototype system has usable performance.
Simon Goldsmith, Robert O'Callahan, Alex Aiken
OOPSLA2
2003 Object equality profiling
abstract
We present Object Equality Profiling (OEP), a new technique for helping programmers discover optimization opportunities in programs. OEP discovers opportunities for replacing a set of equivalent object instances with a single representative object. Such a set represents an opportunity for automatically or manually applying optimizations such as hash consing, heap compression, lazy allocation, object caching, invariant hoisting, and more. To evaluate OEP, we implemented a tool to help programmers reduce the memory usage of Java programs. Our tool performs a dynamic analysis that records all the objects created during a particular program run. The tool partitions the objects into equivalence classes, and uses collected timing information to determine when elements of an equivalence class could have been safely collapsed into a single representative object without affecting the behavior of that program run. We report the results of applying this tool to benchmarks, including two widely used Web application servers. Many benchmarks exhibit significant amounts of object equivalence, and in most benchmarks our profiler identifies optimization opportunities clustered around a small number of allocation sites. We present a case study of using our profiler to find simple manual optimizations that reduce the average space used by live objects in two SpecJVM benchmarks by 47% and 38% respectively.
Darko Marinov, Robert O'Callahan
OOPSLA2
2003 Hybrid dynamic data race detection
abstract
We present a new method for dynamically detecting potential data races in multithreaded programs. Our method improves on the state of the art in accuracy, in usability, and in overhead. We improve accuracy by combining previously known race detection techniques -- lockset-based detection and happens-before-based detection -- to obtain fewer false positives than lockset-based detection alone. We enhance usability by reporting more information about detected races than any previous dynamic detector. We reduce overhead compared to previous detectors -- particularly for large applications such as Web application servers -- by not relying on happens-before detection alone, by introducing a new optimization to discard redundant information, and by using a two phase approach to identify error-prone program points and then focus instrumentation on those points. We justify our claims by presenting the results of applying our tool to a range of Java programs, including the widely-used Web application servers Resin and Apache Tomcat. Our paper also presents a formalization of locksetbased and happens-before-based approaches in a common framework, allowing us to prove a folk theorem that happens-before detection reports fewer false positives than lockset-based detection (but can report more false negatives), and to prove that key optimizations are correct.
Robert O'Callahan, Jong-Deok Choi
PPoPP1
2002 Efficient and Precise Datarace Detection for Multithreaded Object-Oriented Programs
abstract
We present a novel approach to dynamic datarace detection for multithreaded object-oriented programs. Past techniques for on-the-fly datarace detection either sacrificed precision for performance, leading to many false positive datarace reports, or maintained precision but incurred significant overheads in the range of 3x to 30x. In contrast, our approach results in very few false positives and runtime overhead in the 13% to 42% range, making it both efficient and precise. This performance improvement is the result of a unique combination of complementary static and dynamic optimization techniques.
Jong-Deok Choi, Keunwoo Lee, Alexey Loginov, Robert O'Callahan, Vivek Sarkar, Manu Sridharan
PLDI4
1997 Lackwit: A Program Understanding Tool Based on Type Inference
abstract
No abstract available.
Robert O'Callahan, Daniel Jackson 0001
ICSE1