Demo Data from EDBT 2026 / reviewers in the wild / expert
Urs Hölzle
dblp:h/UrsHolzle
· DBLP profile ↗
27ranked-venue papers
8as first author
1since 2021 · last 2026
0009-0006-0246-9437ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 22 · 8 first-author · 1 since 2021Systems, architecture and hardware · 6 · 1 first-author · 1 since 2021Computer networks · 2
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 networks
4 papers |
Software-defined and programmable networks · 31% Routing and switching · 31% Datacenter networks · 18% | |
| Software engineering, system software, and programming languages
10 papers |
Compilers and program optimization · 38% Programming languages and type systems · 20% Runtime systems and virtual machines · 18% | |
| Computer architecture, parallel and distributed computing, and storage systems
5 papers |
Processor architecture and microarchitecture · 49% Cloud and datacenter computing · 29% Performance modeling and evaluation · 12% | |
| Databases, data mining, and information retrieval
2 papers |
Information retrieval · 72% Data mining · 21% Query processing and optimization · 7% |
Topics — the 30 heaviest of 39, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Software-defined and programmable networks › control plane
centralized control |
0.2 | 1 | 2015 | Jupiter Rising: A Decade of Clos Topologies and Centralized Control in Google's Datacenter Network · SIGCOMM 2015 |
Routing and switching › switching networks › multistage interconnection network
clos network |
0.2 | 1 | 2015 | Jupiter Rising: A Decade of Clos Topologies and Centralized Control in Google's Datacenter Network · SIGCOMM 2015 |
Internet architecture and protocols › traffic management
bandwidth management |
0.2 | 1 | 2013 | B4: experience with a globally-deployed software defined wan · SIGCOMM 2013 |
Datacenter networks
datacenter interconnect |
0.2 | 1 | 2013 | B4: experience with a globally-deployed software defined wan · SIGCOMM 2013 |
Software-defined and programmable networks › SDN applications
software-defined WAN |
0.2 | 1 | 2013 | B4: experience with a globally-deployed software defined wan · SIGCOMM 2013 |
Routing and switching
traffic engineering |
0.2 | 1 | 2013 | B4: experience with a globally-deployed software defined wan · SIGCOMM 2013 |
Datacenter networks
datacenter routing |
0.1 | 1 | 2015 | Jupiter Rising: A Decade of Clos Topologies and Centralized Control in Google's Datacenter Network · SIGCOMM 2015 |
Information retrieval
web search |
0.1 | 1 | 2005 | Google: or how I learned to love terabytes · SIGMETRICS 2005 |
Processor architecture and microarchitecture
branch prediction |
0.0 | 2 | 1998 | The Cascaded Predictor: Economical and Adaptive Branch Target Prediction · MICRO 1998 Accurate Indirect Branch Prediction · ISCA 1998 |
Programming languages and type systems › method dispatch
dynamic dispatch |
0.0 | 3 | 1996 | The Direct Cost of Virtual Function Calls in C++ · OOPSLA 1996 Minimizing Row Displacement Dispatch Tables · OOPSLA 1995 Reconciling Responsiveness with Performance in Pure Object-Orieted Languages · ACM Trans. Program. Lang. Syst. 1996 |
Compilers and program optimization › interprocedural optimization
inlining |
0.0 | 2 | 1996 | Reconciling Responsiveness with Performance in Pure Object-Orieted Languages · ACM Trans. Program. Lang. Syst. 1996 Type Feedback vs. Concrete Type Inference: A Comparison of Optimization Techniques for Object-Oriented Languages · OOPSLA 1995 |
Compilers and program optimization
dynamic optimization |
0.0 | 2 | 1996 | Reconciling Responsiveness with Performance in Pure Object-Orieted Languages · ACM Trans. Program. Lang. Syst. 1996 A Third-Generation SELF Implementation: Reconsiling Responsiveness with Performance · OOPSLA 1994 |
Program analysis
data flow analysis |
0.0 | 1 | 1999 | Removing Unnecessary Synchronization in Java · OOPSLA 1999 |
Concurrent programming
synchronization |
0.0 | 1 | 1999 | Removing Unnecessary Synchronization in Java · OOPSLA 1999 |
Compilers and program optimization › parallel program optimization › synchronization optimization
synchronization elimination |
0.0 | 1 | 1999 | Removing Unnecessary Synchronization in Java · OOPSLA 1999 |
Processor architecture and microarchitecture › branch prediction
indirect branch prediction |
0.0 | 1 | 1998 | Accurate Indirect Branch Prediction · ISCA 1998 |
Processor architecture and microarchitecture › branch prediction
two-level adaptive branch prediction |
0.0 | 1 | 1998 | Accurate Indirect Branch Prediction · ISCA 1998 |
Data mining › big data analytics
large-scale data mining |
0.0 | 1 | 2005 | Google: or how I learned to love terabytes · SIGMETRICS 2005 |
High-performance computing › data-intensive computing
large-scale data processing |
0.0 | 1 | 2005 | Google: or how I learned to love terabytes · SIGMETRICS 2005 |
Compilers and program optimization
interprocedural optimization |
0.0 | 1 | 1996 | Reconciling Responsiveness with Performance in Pure Object-Orieted Languages · ACM Trans. Program. Lang. Syst. 1996 |
Performance modeling and evaluation
workload characterization |
0.0 | 1 | 1996 | The Direct Cost of Virtual Function Calls in C++ · OOPSLA 1996 |
Programming languages and type systems › object-oriented programming
multiple inheritance |
0.0 | 1 | 1995 | Minimizing Row Displacement Dispatch Tables · OOPSLA 1995 |
Runtime systems and virtual machines
dynamic compilation |
0.0 | 1 | 1994 | A Third-Generation SELF Implementation: Reconsiling Responsiveness with Performance · OOPSLA 1994 |
Compilers and program optimization › compiler optimization › type-based optimization
dynamic dispatch optimization |
0.0 | 1 | 1994 | Optimizing Dynamically-Dispatched Calls with Run-Time Type Feedback · PLDI 1994 |
Runtime systems and virtual machines
virtual machine implementation |
0.0 | 1 | 1994 | A Third-Generation SELF Implementation: Reconsiling Responsiveness with Performance · OOPSLA 1994 |
Programming languages and type systems › object-oriented programming
object-oriented languages |
0.0 | 3 | 1995 | Type Feedback vs. Concrete Type Inference: A Comparison of Optimization Techniques for Object-Oriented Languages · OOPSLA 1995 Optimizing Dynamically-Dispatched Calls with Run-Time Type Feedback · PLDI 1994 A Third-Generation SELF Implementation: Reconsiling Responsiveness with Performance · OOPSLA 1994 |
Debugging and program repair › software debugging
debugging optimized code |
0.0 | 1 | 1992 | Debugging Optimized Code with Dynamic Deoptimization · PLDI 1992 |
Runtime systems and virtual machines › dynamic compilation › just-in-time compilation
deoptimization |
0.0 | 1 | 1992 | Debugging Optimized Code with Dynamic Deoptimization · PLDI 1992 |
Runtime systems and virtual machines › virtual machine implementation
java virtual machine |
0.0 | 1 | 1999 | Reducing Transfer Delay Using Java Class File Splitting and Prefetching · OOPSLA 1999 |
Performance modeling and evaluation › simulation
processor simulation |
0.0 | 1 | 1996 | The Direct Cost of Virtual Function Calls in C++ · OOPSLA 1996 |
Methods — techniques the papers use, named apart from their topics
rate limiting · 0.3centralized traffic engineering · 0.3measurement · 0.1prefetching · 0.0class file splitting · 0.0incremental result delivery · 0.0fast searching primitives · 0.0processor simulation · 0.0executable inspection · 0.0interprocedural data flow analysis · 0.0flow- and context-insensitive analysis · 0.0two-level prediction · 0.0cascaded prediction · 0.0profile-guided optimization · 0.0profile-based receiver class prediction · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Prometheus: Toward Resilient Data Centers through Optimized Cooling Infrastructure
Sourav Patel, Youzhi Liang, Thomas Kowalski, Nick Care, Greg Imwalle, Rita Lu, Jeremy Rice, Nick Saddock, Rick Vengalath, Urs Hölzle, Benjamin C. Lee, Parthasarathy Ranganathan |
ISCA | 12 |
| 2015 | Jupiter Rising: A Decade of Clos Topologies and Centralized Control in Google's Datacenter NetworkabstractWe present our approach for overcoming the cost, operational complexity, and limited scale endemic to datacenter networks a decade ago. Three themes unify the five generations of datacenter networks detailed in this paper. First, multi-stage Clos topologies built from commodity switch silicon can support cost-effective deployment of building-scale networks. Second, much of the general, but complex, decentralized network routing and management protocols supporting arbitrary deployment scenarios were overkill for single-operator, pre-planned datacenter networks. We built a centralized control mechanism based on a global configuration pushed to all datacenter switches. Third, modular hardware design coupled with simple, robust software allowed our design to also support inter-cluster and wide-area networks. Our datacenter networks run at dozens of sites across the planet, scaling in capacity by 100x over ten years to more than 1Pbps of bisection bandwidth. Joon Ong, Glen Anderson, Ashby Armistead, Roy Bannon, Seb Boving, Gaurav Desai, Bob Felderman, Paulie Germano, Anand Kanagala, Jeff Provost, Jason Simmons, Eiichi Tanda, Jim Wanderer, Urs Hölzle, Stephen Stuart, Amin Vahdat |
SIGCOMM | 16 |
| 2013 | B4: experience with a globally-deployed software defined wanabstractWe present the design, implementation, and evaluation of B4, a private WAN connecting Google's data centers across the planet. B4 has a number of unique characteristics: i) massive bandwidth requirements deployed to a modest number of sites, ii) elastic traffic demand that seeks to maximize average bandwidth, and iii) full control over the edge servers and network, which enables rate limiting and demand measurement at the edge. Sushant Jain, Subhasree Mandal, Joon Ong, Leonid B. Poutievski, Subbaiah Venkata, Jim Wanderer, Junlan Zhou, Jonathan Zolla, Urs Hölzle, Stephen Stuart, Amin Vahdat |
SIGCOMM | 12 |
| 2005 | Google: or how I learned to love terabytesabstractSearch is one of the most important applications used on the internet, but it also poses some of the most interesting challenges in computer science. Providing high-quality search requires understanding across a wide range of computer science disciplines, from lower-level systems issues like computer architecture and distributed systems to applied areas like information retrieval, machine learning, data mining, and user interface design.In this talk I'll share some interesting observations and measurements obtained at Google, and will illustrate the behind-the-scenes pieces of infrastructure (both hardware and software) that we've built in order to extract this information from many terabytes of data. Urs Hölzle |
SIGMETRICS | 1 |
| 2004 | Monkey See, Monkey Do: A Tool for TCP Tracing and Replaying
Yuchung Cheng, Urs Hölzle, Neal Cardwell, Stefan Savage, Geoffrey M. Voelker |
USENIX ATC, General Track | 2 |
| 2003 | Dynamic Query-Based Debugging of Object-Oriented Programs
Raimondas Lencevicius, Urs Hölzle, Ambuj K. Singh |
Autom. Softw. Eng. | 2 |
| 1999 | A Study of the Allocation Behavior of the SPECjvm98 Java Benchmark
Sylvia Dieckmann, Urs Hölzle |
ECOOP | 2 |
| 1999 | Dynamic Query-Based Debugging
Raimondas Lencevicius, Urs Hölzle, Ambuj K. Singh |
ECOOP | 2 |
| 1999 | Multi-stage Cascaded Prediction
Karel Driesen, Urs Hölzle |
Euro-Par | 2 |
| 1999 | Removing Unnecessary Synchronization in JavaabstractJava programs perform many synchronization operations on data structures. Some of these synchronization are unnecessary; in particular, if an object is reachable only by a single thread, concurrent access is impossible and no synchronization is needed. We describe an interprocedural, flow- and context-insensitive dataflow analysis that finds such situations. A global optimizing transformation then eliminates synchronizations on these objects. For every program in our suite of ten Java benchmarks consisting of SPECjvm98 and others, our system optimizes over 90% of the alias sets containing at least one synchronized object. As a result, the dynamic frequency of synchronizations is reduced by up to 99%. For two benchmarks that perform synchronizations very frequently, this optimization leads to speedups of 36% and 20%. Jeff Bogda, Urs Hölzle |
OOPSLA | 2 |
| 1999 | Reducing Transfer Delay Using Java Class File Splitting and PrefetchingabstractThe proliferation of the Internet is fueling the development of mobile computing environments in which mobile code is executed on remote sites. In such environments, the end user must often wait while the mobile program is transferred from the server to the client where it executes. This downloading can create significant delays, hurting the interactive experience of users. Chandra Krintz, Brad Calder, Urs Hölzle |
OOPSLA | 3 |
| 1998 | Binary Component Adaptation
Ralph Keller, Urs Hölzle |
ECOOP | 2 |
| 1998 | Accurate Indirect Branch PredictionabstractIndirect branch prediction is likely to become increasingly important in the fixture because indirect branches occur more frequently in object-oriented programs. With misprediction rates of around 25% on current processors, indirect branches can incur a significant fraction of branch misprediction overhead even though they remain less frequent than the more predictable conditional branches. We investigate a wide range of two-level predictors dedicated exclusively to indirect branches. Starting with predictors that useful-precision addresses and unlimited tables, we progressively introduce hardware constraints and minimize the loss of predictor performance at each step. For programs from the SPECint95 suite as well as a suite of large C++ applications, a two-level predictor achieves a misprediction rate of 9.8% with a 1 K-entry table and 7.3% with an 8 K-entry table, representing more than a threefold improvement over an ideal BTB. A hybrid predictor further reduces the misprediction rates to 8.98% (1 K) and 5.95% (8 K). Karel Driesen, Urs Hölzle |
ISCA | 2 |
| 1998 | The Cascaded Predictor: Economical and Adaptive Branch Target PredictionabstractTwo-level predictors improve branch prediction accuracy by allowing predictor tables to hold multiple predictions per branch. Unfortunately, the accuracy of such predictors is impaired by two detrimental effects. Capacity misses increase since each branch may occupy many entries, depending on the number of different path histories leading up to the branch. The working set of a given program therefore increases with history length. Similarly, cold start misses increase with history length since the predictor must first store a prediction separately for each history pattern before it can predict branches with that history. We describe a new hybrid predictor architecture, cascaded branch prediction, which can alleviate both of these effects while retaining the superior accuracy of two level predictors. Cascaded predictors dynamically classify and predict easily predicted branches using an inexpensive predictor, preventing insertion of these branches into a more powerful second stage predictor. We show that for path-based indirect branch predictors, cascaded prediction obtains prediction rates equivalent to that of two-level predictors at approximately one fourth the cost. For example, a cascaded predictor with 64+1024 entries achieves the same prediction accuracy as a 4096-entry two-level predictor. Although we have evaluated cascaded prediction only on indirect branches, we believe that it could also improve conditional branch prediction and value prediction. Karel Driesen, Urs Hölzle |
MICRO | 2 |
| 1997 | Query-Based Debugging of Object-Oriented ProgramsabstractObject relationships in modem software systems are becoming increasingly numerous and complex. Programmers who try to find violations of such relationships need new tools that allow them to explore objects in a large system more efficiently. Many existing debuggers present only a low-level, one-object-at-a-time view of objects and their relationships. We propose a new solution to overcome these problems: query-based debugging. The implementation of the query-based debugger described here offers programmers an effective query tool that allows efficient searching of large object spaces and quick verification of complex relationships. Even for programs that have large numbers of objects, the debugger achieves interactive response times for common queries by using a combination of fast searching primitives, query optimization, and incremental result delivery. Raimondas Lencevicius, Urs Hölzle, Ambuj K. Singh |
OOPSLA | 2 |
| 1996 | Eliminating Virtual Function Calls in C++ Programs
Gerald Aigner, Urs Hölzle |
ECOOP | 2 |
| 1996 | The Direct Cost of Virtual Function Calls in C++abstractWe study the direct cost of virtual function calls in C++ programs, assuming the standard implementation using virtual function tables. We measure this overhead experimentally for a number of large benchmark programs, using a combination of executable inspection and processor simulation. Our results show that the C++ programs measured spend a median of 5.2% of their time and 3.7% of their instructions in dispatch code. For "all virtuals" versions of the programs, the median overhead rises to 13.7% (13% of the instructions). The "thunk" variant of the virtual function table implementation reduces the overhead by a median of 21% relative to the standard implementation. On future processors, these overheads are likely to increase moderately. Karel Driesen, Urs Hölzle |
OOPSLA | 2 |
| 1996 | Reconciling Responsiveness with Performance in Pure Object-Orieted LanguagesabstractDynamically dispatched calls often limit the performance of object-oriented programs, since opject-oriented programming encourages factoring code into small, reusable units, thereby increasing the frequency of these expensive operations. Frequent calls not only slow down execution with the dispatch overhead per se, but more importantly they hinder optimization by limiting the range and effectiveness of standard global optimizations. In particular, dynamically dispatched calles prevent standard interprocedual optimizations that depend on the availability of a static call graph. The SELF implementation described here offers tow novel approaches to optimization. Type feedback speculatively inlines dynamically dispatched calls based on profile information that predicts likely receiver classes. Adaptive optimization reconciles optimizing compilation with interactive performance by incrementally optimizing only the frequently executed parts of a program. When combined, these two techniques result in a system that can execute programs significantly faster than previous systems while retaining much of the interactiveness of an interpreted system. Urs Hölzle, David M. Ungar |
ACM Trans. Program. Lang. Syst. | 1 |
| 1995 | Message Dispatch on Pipelined Processors
Karel Driesen, Urs Hölzle, Jan Vitek |
ECOOP | 2 |
| 1995 | Do Object-Oriented Languages Need Special Hardware Support?
Urs Hölzle, David M. Ungar |
ECOOP | 1 |
| 1995 | Type Feedback vs. Concrete Type Inference: A Comparison of Optimization Techniques for Object-Oriented LanguagesabstractTwo promising optimization techniques for object-oriented languages are type feedback (profile-based receiver class prediction) and concrete type inference (static analysis). We directly compare the two techniques, evaluating their effectiveness on a suite of 23 SELF programs while keeping other factors constant.Our results show that both systems inline over 95% of all sends and deliver similar overall performance with one exception: SELF's automatic coercion of machine integers to arbitrary-precision integers upon overflow confounds type inference and slows down arithmetic-intensive benchmarks.We discuss several other issues which, given the comparable run-time performance, may influence the choice between type feedback and type inference. Ole Agesen, Urs Hölzle |
OOPSLA | 2 |
| 1995 | Minimizing Row Displacement Dispatch TablesabstractRow displacement dispatch tables implement message dispatching for dynamically-typed languages with a run time overhead of one memory indirection plus an equality test. The technique is similar to virtual function table lookup, which is, however, restricted to statically typed languages like C++. We show how to reduce the space requirements of dispatch tables to approximately the same size as virtual function tables. The scheme is then generalized for multiple inheritance. Experiments on a number of class libraries from five different languages demonstrate that the technique is effective for a broad range of programs. Finally, we discuss optimizations of the row displacement algorithm that allow dispatch table construction of these large samples to take place in a few seconds. Karel Driesen, Urs Hölzle |
OOPSLA | 2 |
| 1994 | A Third-Generation SELF Implementation: Reconsiling Responsiveness with PerformanceabstractProgramming systems should be both responsive (to support rapid development) and efficient (to complete computations quickly). Pure object-oriented languages are harder to implement efficiently since they need optimization to achieve good performance. Unfortunately, optimization conflicts with interactive responsiveness because it tends to produce long compilation pauses, leading to unresponsive programming environments. Therefore, to achieve good responsiveness, existing exploratory programming environments such as the Smalltalk-80 environment rely on interpretation or non-optimizing dynamic compilation. But such systems pay a price for their interactiveness, since they may execute programs several times slower than an optimizing system. Urs Hölzle, David M. Ungar |
OOPSLA | 1 |
| 1994 | Optimizing Dynamically-Dispatched Calls with Run-Time Type FeedbackabstractAbstrachObject-oriented programs are difficult to optimize because they execute many dynamically-dispatched calls.These calls cannot easily be eliminated because the compiler does not know which callee will be invoked at runtime.We have developed a simple technique that feeds back type information from the runtime system to the compiler.With this type feedback, the compiler can inline any dynamically-dispatched call.Our compiler drastically reduces the calI frequency of a suite of large SELF applications (by a factor of 3.6) and improves performance by a factor of 1.7.We believe that type feedback could significantly reduce call frequencies and improve performance for most other objectoriented languages (statically-typed or not) as well as for languages with type-dependent operations such as generic arithmetic. Urs Hölzle, David M. Ungar |
PLDI | 1 |
| 1993 | Integrating Independently-Developed Components in Object-Oriented Languages
Urs Hölzle |
ECOOP | 1 |
| 1992 | Debugging Optimized Code with Dynamic DeoptimizationabstractSELF's debugging system provides complete source-level debugging (expected behavior) with globally optimized code. It shields the debugger from optimizations performed by the compiler by dynamically deoptimizing code on demand. Deoptimization only affects the procedure activations that are actively being debugged; all other code runs at full speed. Deoptimization requires the compiler to supply debugging information at discrete interrupt points; the compiler can still perform extensive optimizations between interrupt points without affecting debuggability. At the same time, the inability to interrupt between interrupt points is invisible to the user. Our debugging system also handles programming changes during debugging. Again, the system provides expected behavior: it is possible to change a running program and immediately observe the effects of the change. Dynamic deoptimization transforms old compiled code (which may contain inlined copies of the old version of the changed procedure) into new versions reflecting the current source-level state. To the best of our knowledge, SELF is the first practical system providing full expected behavior with globally optimized code. Urs Hölzle, Craig Chambers, David M. Ungar |
PLDI | 1 |
| 1991 | Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches
Urs Hölzle, Craig Chambers, David M. Ungar |
ECOOP | 1 |