Profiling Streams on the Java Virtual Machine
The java.util.stream framework is becoming a popular option among developers that target the Java Virtual Machine (JVM) to implement diverse styles of data processing, typically map-reduce-like transformations on collections and datasets. A key feature of the streams framework is enabling parallelizing a computation as easy as calling to a single method, potentially enabling speedups while requiring developers to write no single line of parallel code. Still, writing correct and fast parallel stream applications requires evaluating multiple trade-offs inherent to concurrent programming. Developers should carefully test whether parallelizing a stream results in poor performance, including liveness failures, or can lead to wrong results and unpredictable behavior due to safety hazards. Being such concerns mainly observable at runtime, in the search of optimizations it is crucial for developers to analyze a stream application while it executes. Unfortunately, there is a lack of tools facilitating monitoring and capturing information that enable understanding the runtime behavior of a stream application. In this paper, we devise a novel profiler specifically focused on characterizing dynamic attributes of a stream application running on a single JVM in a shared-memory multicore. Our tool aims at collecting runtime information and key metrics to support analysis of sequential and parallel processing exhibited by an arbitrarily complex stream application, towards helping developers make better decisions to efficiently and safely using the streams framework.
Tue 24 MarDisplayed time zone: Belfast change
11:00 - 12:30 | |||
11:00 20mTalk | Renaissance: Benchmarking Suite for Parallel Applications on the JVM (Talk) MoreVMs Aleksandar Prokopec Oracle Labs, Andrea Rosà University of Lugano, Switzerland, David Leopoldseder Oracle Labs, Gilles Duboscq Oracle Labs, Petr Tuma Charles University, Martin Studener JKU Linz, Austria, Lubomír Bulej Charles University, Yudi Zheng Oracle Labs, Alex Villazón Universidad Privada Boliviana, Bolivia, Doug Simon Oracle Labs, Thomas Wuerthinger Oracle Labs, Walter Binder University of Lugano, Switzerland | ||
11:20 30mTalk | Profiling Streams on the Java Virtual Machine MoreVMs Eduardo Rosales University of Lugano, Switzerland, Andrea Rosà University of Lugano, Switzerland, Walter Binder University of Lugano, Switzerland | ||
11:50 20mTalk | Continuous Performance Tracking for Better "Everything"! (Talk) MoreVMs Stefan Marr University of Kent | ||
12:10 20mTalk | Towards Modern Runtime Support for an Object-Based Distributed Programming Language (Talk) MoreVMs Oleks Shturmov University of Oslo |