Eduardo Eduardo Rosales Rosero, Andrea Rosà, Walter Binder
{"title":"Profiling streams on the Java virtual machine","authors":"Eduardo Eduardo Rosales Rosero, Andrea Rosà, Walter Binder","doi":"10.1145/3397537.3397565","DOIUrl":null,"url":null,"abstract":"The java.util.stream framework is becoming a popular option among developers that target the Java Virtual Machine (JVM) to implement map-reduce-like transformations on collections. A key feature of the streams framework is enabling parallelizing a computation as easy as calling a single method. Still, developers should test whether parallelizing a stream may results in performance, liveness or safety hazards. While such issues are mainly observable at runtime, there is a lack of tools capturing information that enable understanding the dynamic behavior of a stream application. In this extended abstract, we devise a profiler 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 stream processing, towards helping developers make better decisions to efficiently and safely use the streams framework.","PeriodicalId":373173,"journal":{"name":"Companion Proceedings of the 4th International Conference on Art, Science, and Engineering of Programming","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2020-03-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Companion Proceedings of the 4th International Conference on Art, Science, and Engineering of Programming","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3397537.3397565","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1
Abstract
The java.util.stream framework is becoming a popular option among developers that target the Java Virtual Machine (JVM) to implement map-reduce-like transformations on collections. A key feature of the streams framework is enabling parallelizing a computation as easy as calling a single method. Still, developers should test whether parallelizing a stream may results in performance, liveness or safety hazards. While such issues are mainly observable at runtime, there is a lack of tools capturing information that enable understanding the dynamic behavior of a stream application. In this extended abstract, we devise a profiler 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 stream processing, towards helping developers make better decisions to efficiently and safely use the streams framework.