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. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Vojin Jovanovic

dblp:71/9975 · DBLP profile ↗
← Back
17ranked-venue papers
1as first author
9since 2021 · last 2026
0009-0002-4233-2401ORCID · reported

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

Software engineering, systems software and programming languages · 13 · 1 first-author · 7 since 2021Systems, architecture and hardware · 4 · 3 since 2021Computer networks · 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
3 papers
Compilers and program optimization · 64% Runtime systems and virtual machines · 20% Program analysis · 14%
Computer architecture, parallel and distributed computing, and storage systems
3 papers
Cloud and datacenter computing · 46% Distributed systems · 39% Electronic design automation · 15%
Computer networks
1 paper
Network management and operations · 77% Routing and switching · 23%

Topics — the 12 heaviest of 17, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Compilers and program optimization
memory optimization
0.512021
Compiler-assisted object inlining with value fields · PLDI 2021
Compilers and program optimization › program transformation › program optimization
object inlining
0.512021
Compiler-assisted object inlining with value fields · PLDI 2021
Compilers and program optimization › compiler construction
ahead-of-time compilation
0.412019
Initialize once, start fast: application initialization at build time · Proc. ACM Program. Lang. 2019
Program analysis › static analysis
pointer analysis
0.412019
Initialize once, start fast: application initialization at build time · Proc. ACM Program. Lang. 2019
Cloud and datacenter computing
serverless computing
0.412019
Initialize once, start fast: application initialization at build time · Proc. ACM Program. Lang. 2019
Distributed systems
distributed system testing
0.222011
Toward Online Testing of Federated and Heterogeneous Distributed Systems · USENIX ATC 2011
Online testing of federated and heterogeneous distributed systems · SIGCOMM 2011
Compilers and program optimization › compiler construction
extensible compiler
0.212013
Optimizing data structures in high-level programs: new directions for extensible compilers based on staging · POPL 2013
Network management and operations › fault management
fault diagnosis
0.112011
Online testing of federated and heterogeneous distributed systems · SIGCOMM 2011
Electronic design automation › hardware verification and test
online testing
0.112011
Toward Online Testing of Federated and Heterogeneous Distributed Systems · USENIX ATC 2011
Routing and switching › inter-domain routing
BGP
0.012011
Online testing of federated and heterogeneous distributed systems · SIGCOMM 2011
Distributed systems
fault tolerance
0.012011
Toward Online Testing of Federated and Heterogeneous Distributed Systems · USENIX ATC 2011
Distributed systems › distributed system architecture
heterogeneous distributed systems
0.012011
Toward Online Testing of Federated and Heterogeneous Distributed Systems · USENIX ATC 2011

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

points-to analysis · 0.8heap snapshotting · 0.8copy-on-write · 0.8value fields · 0.5fault detection · 0.2multi-stage programming · 0.2intermediate representation extension · 0.2online testing · 0.1on-line testing · 0.1
YearPublicationVenuePosition
2026 GraalMHC: ML-Based Method-Hotness Classification for Binary-Size Reduction in Optimizing Compilers
abstract
Optimizing compilers often sacrifice binary size in pursuit of higher run-time performance. In the absence of method execution profiles, they uniformly apply performance-oriented optimizations, typically various forms of code duplication. Duplications in methods that are rarely or never executed only increase binary size without improving performance. Modern static profiler use ML to predict branch profiles, yet they do not identify which methods will be frequently executed at run time. Doing so would enable more selective optimizations, reducing binary size while preserving or only minimally affecting run-time performance.
Milan Cugurovic, Aleksandar Prokopec, Boris Spasojevic, Vojin Jovanovic, Milena Vujosevic-Janicic
CC4
2026 GraalDoss: Direct object snapshotting and sharing for cloud-native applications
Ivan Ristovic, Vojin Jovanovic, Peter Hofer, Milena Vujosevic-Janicic
Future Gener. Comput. Syst.2
2025 GraalNN: Context-Sensitive Static Profiling with Graph Neural Networks
abstract
Accurate static profile prediction is crucial for achieving optimal program performance in the absence of dynamic profiles. However, existing static profiling methods struggle to fully exploit the complex structure of the compiler’s intermediate representation and fail to effectively utilize the calling context information needed for accurate profile inference. To address these limitations, we introduce GraalNN, a Graph Neural Network-based static profiling framework that directly learns structural information from control-flow graphs. This reduces the reliance on handcrafted features and minimizes the effort required for feature engineering while improving the model’s ability to predict profiles. GraalNN adopts a two-stage approach: it predicts context-insensitive profiles during parsing and uses contextual information from the call graph to refine profiles during inlining. This methodology achieves a 10.13% runtime speedup across a diverse set of industry-standard benchmarks, surpassing state-of-the-art static profiling techniques by more than 2.5%. Furthermore, GraalNN improves throughput by 3.7% over other static profiling methods on real-world microservices.
Lazar Milikic, Milan Cugurovic, Vojin Jovanovic
CGO3
2025 Hydra: Virtualized Multi-Language Runtime for High-Density Serverless Platforms
abstract
Serverless is an attractive computing model that offers seamless scalability and elasticity; it takes the infrastructure management burden away from users and enables a pay-as-you-use billing model. As a result, serverless is becoming increasingly popular for highly elastic and bursty workloads. However, existing platforms are supported by bloated virtualization stacks, which, combined with bursty and irregular invocations, lead to high memory and latency overheads.
Serhii Ivanenko, Vasyl Lanko, Rudi Horn, Vojin Jovanovic, Rodrigo Bruno
SoCC4
2024 GraalSP: Polyglot, efficient, and robust machine learning-based static profiler
Milan Cugurovic, Milena Vujosevic-Janicic, Vojin Jovanovic, Thomas Würthinger
J. Syst. Softw.3
2023 CloudJIT: A Just-in-Time FaaS Optimizer (Work in Progress)
abstract
Function-as-a-Service has emerged as a trending paradigm that provides attractive solutions to execute fine-grained and short-lived workloads referred to as functions. Functions are typically developed in a managed language such as Java and execute atop a language runtime. However, traditional language runtimes such as the HotSpot JVM are designed for peak performance as considerable time is spent profiling and Just-in-Time compiling code. As a consequence, warmup time and memory footprint are impacted. We observe that FaaS workloads, which are short-lived, do not fit this profile.
Serhii Ivanenko, Rodrigo Bruno, Jovan Stevanovic, Luís Veiga, Vojin Jovanovic
MPLR5
2023 CloudJIT: A Just-in-Time FaaS Optimizer (Poster Abstract)
abstract
Function-as-a-Service provides attractive solutions to execute fine-grained and short-lived functions. Functions are typically developed in a managed language and execute atop a language runtime. However, traditional runtimes are designed for peak performance as considerable time is spent profiling and Just-in-Time compiling code. We observe that short-lived FaaS workloads do not fit this profile.
Serhii Ivanenko, Rodrigo Bruno, Jovan Stevanovic, Luís Veiga, Vojin Jovanovic
MPLR5
2023 Comparing Rapid Type Analysis with Points-To Analysis in GraalVM Native Image
abstract
Whole-program analysis is an essential technique that enables advanced compiler optimizations. An important example of such a method is points-to analysis used by ahead-of-time (AOT) compilers to discover program elements (classes, methods, fields) used on at least one program path. GraalVM Native Image uses a points-to analysis to optimize Java applications, which is a time-consuming step of the build. We explore how much the analysis time can be improved by replacing the points-to analysis with a rapid type analysis (RTA), which computes reachable elements faster by allowing more imprecision. We propose several extensions of previous approaches to RTA: making it parallel, incremental, and supporting heap snapshotting. We present an extensive experimental evaluation of the effects of using RTA instead of points-to analysis, in which RTA allowed us to reduce the analysis time for Spring Petclinic (a popular demo application of the Spring framework) by 64% and the overall build time by 35% at the cost of increasing the image size due to the imprecision by 15%.
David Kozak, Vojin Jovanovic, Codrut Stancu, Tomás Vojnar, Christian Wimmer
MPLR2
2021 Compiler-assisted object inlining with value fields
abstract
Object Oriented Programming has flourished in many areas ranging from web-oriented microservices, data processing, to databases. However, while representing domain entities as objects is appealing to developers, it leads to data fragmentation, resulting in high memory footprint and poor locality.
Rodrigo Bruno, Vojin Jovanovic, Christian Wimmer, Gustavo Alonso
PLDI2
2019 Compiler generation for performance-oriented embedded DSLs (short paper)
abstract
In this paper, we present a framework for generating optimizing compilers for performance-oriented embedded DSLs (EDSLs). This framework provides facilities to automatically generate the boilerplate code required for building DSL compilers on top of the existing extensible optimizing compilers. We evaluate the practicality of our framework by demonstrating a real-world use-case successfully built with it.
Amir Shaikhha, Vojin Jovanovic, Christoph Koch 0001
GPCE2
2019 Initialize once, start fast: application initialization at build time
abstract
Arbitrary program extension at run time in language-based VMs, e.g., Java's dynamic class loading, comes at a startup cost: high memory footprint and slow warmup. Cloud computing amplifies the startup overhead. Microservices and serverless cloud functions lead to small, self-contained applications that are started often. Slow startup and high memory footprint directly affect the cloud hosting costs, and slow startup can also break service-level agreements. Many applications are limited to a prescribed set of pre-tested classes, i.e., use a closed-world assumption at deployment time. For such Java applications, GraalVM Native Image offers fast startup and stable performance. GraalVM Native Image uses a novel iterative application of points-to analysis and heap snapshotting, followed by ahead-of-time compilation with an optimizing compiler. Initialization code can run at build time, i.e., executables can be tailored to a particular application configuration. Execution at run time starts with a pre-populated heap, leveraging copy-on-write memory sharing. We show that this approach improves the startup performance by up to two orders of magnitude compared to the Java HotSpot VM, while preserving peak performance. This allows Java applications to have a better startup performance than Go applications and the V8 JavaScript VM.
Christian Wimmer, Codrut Stancu, Peter Hofer, Vojin Jovanovic, Paul Wögerer, Peter B. Kessler, Oleg Pliss, Thomas Würthinger
Proc. ACM Program. Lang.4
2017 One compiler: deoptimization to optimized code
Christian Wimmer, Vojin Jovanovic, Erik Eckstein, Thomas Würthinger
CC2
2014 Yin-yang: concealing the deep embedding of DSLs
abstract
Deeply embedded domain-specific languages (EDSLs) intrinsically compromise programmer experience for improved program performance. Shallow EDSLs complement them by trading program performance for good programmer experience. We present Yin-Yang, a framework for DSL embedding that uses Scala macros to reliably translate shallow EDSL programs to the corresponding deep EDSL programs. The translation allows program prototyping and development in the user friendly shallow embedding, while the corresponding deep embedding is used where performance is important. The reliability of the translation completely conceals the deep em- bedding from the user. For the DSL author, Yin-Yang automatically generates the deep DSL embeddings from their shallow counterparts by reusing the core translation. This obviates the need for code duplication and leads to reliability by construction.
Vojin Jovanovic, Amir Shaikhha, Sandro Stucki, Vladimir Nikolaev, Christoph Koch 0001, Martin Odersky
GPCE1
2013 Composition and Reuse with Compiled Domain-Specific Languages
Arvind K. Sujeeth, Tiark Rompf, Kevin J. Brown, HyoukJoong Lee, Hassan Chafi, Victoria Popic, Aleksandar Prokopec, Vojin Jovanovic, Martin Odersky, Kunle Olukotun
ECOOP9
2013 Optimizing data structures in high-level programs: new directions for extensible compilers based on staging
abstract
High level data structures are a cornerstone of modern programming and at the same time stand in the way of compiler optimizations. In order to reason about user- or library-defined data structures compilers need to be extensible. Common mechanisms to extend compilers fall into two categories. Frontend macros, staging or partial evaluation systems can be used to programmatically remove abstraction and specialize programs before they enter the compiler. Alternatively, some compilers allow extending the internal workings by adding new transformation passes at different points in the compile chain or adding new intermediate representation (IR) types. None of these mechanisms alone is sufficient to handle the challenges posed by high level data structures. This paper shows a novel way to combine them to yield benefits that are greater than the sum of the parts.
Tiark Rompf, Arvind K. Sujeeth, Nada Amin, Kevin J. Brown, Vojin Jovanovic, HyoukJoong Lee, Manohar Jonnalagedda, Kunle Olukotun, Martin Odersky
POPL5
2011 Online testing of federated and heterogeneous distributed systems
abstract
DiCE is a system for online testing of federated and heterogeneous distributed systems. We have built a prototype of DiCE and integrated it with an open-source BGP router. DiCE quickly detects three important classes of faults, resulting from configuration mistakes, policy conflicts and programming errors.
Marco Canini, Vojin Jovanovic, Daniele Venzano, Dejan M. Novakovic, Dejan Kostic
SIGCOMM2
2011 Toward Online Testing of Federated and Heterogeneous Distributed Systems
Marco Canini, Vojin Jovanovic, Daniele Venzano, Boris Spasojevic, Olivier Crameri, Dejan Kostic
USENIX ATC2