Large-scale characterization of Java']Java streams

被引:0
|
作者
Rosales, Eduardo [1 ,2 ]
Basso, Matteo [1 ]
Rosa, Andrea [1 ]
Binder, Walter [1 ]
机构
[1] Univ Svizzera Italiana, Fac Informat, Lugano, Switzerland
[2] Univ Svizzera Italiana, Fac Informat, CH-6900 Lugano, Switzerland
来源
SOFTWARE-PRACTICE & EXPERIENCE | 2023年 / 53卷 / 09期
关键词
code repositories; dynamic program analysis; empirical studies; GitHub; !text type='Java']Java[!/text] streams; !text type='Java']Java[!/text] virtual machine;
D O I
10.1002/spe.3213
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Java streams are receiving the attention of developers targeting the Java virtual machine (JVM) as they ease the development of data-processing logic, while also favoring code extensibility and maintainability through a concise and declarative style based on functional programming. Recent studies aim to shedding light on how Java developers use streams. However, they consider only small sets of applications and mainly apply manual code inspection and static analysis techniques. As a result, the large-scale dynamic analysis of stream processing remains an open research question. In this article, we present the first large-scale empirical study on the use of streams in Java code exercised via unit tests. We present stream-analyzer, a novel dynamic program analysis (DPA) that collects runtime information and key metrics, which enable a fine-grained characterization of sequential and parallel stream processing. We use a fully automatic approach to massively apply our DPA for the analysis of open-source software projects hosted on GitHub. Our findings advance the understanding of the use of Java streams. Both the scale of our analysis and the profiling of dynamic information enable us to confirm with more confidence the outcome highlighted at a smaller scale by related work. Moreover, our study reports the popularity of many features of the Stream API and highlights multiple findings about runtime characteristics unique to streams, while also revealing inefficient stream processing and stream misuses. Finally, we present implications of our findings for developers of the Stream API, tool builders and researchers, and educators.
引用
收藏
页码:1763 / 1792
页数:30
相关论文
共 50 条
  • [1] Large-scale image deblurring in Java']Java
    Wendykier, Piotr
    Nagy, James G.
    [J]. COMPUTATIONAL SCIENCE - ICCS 2008, PT 1, 2008, 5101 : 721 - 730
  • [2] Java']Java for large-scale scientific computations?
    Krall, A
    Tomsich, P
    [J]. LARGE-SCALE SCIENTIFIC COMPUTING, 2001, 2179 : 228 - 235
  • [3] Java']Java communications for large-scale parallel computing
    Getov, V
    Philippsen, M
    [J]. LARGE-SCALE SCIENTIFIC COMPUTING, 2001, 2179 : 33 - 45
  • [4] SourcererJBF: A Java']Java Build Framework For Large-Scale Compilation
    Misu, Md Rakib Hossain
    Achar, Rohan
    Lopes, Cristina V.
    [J]. ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2024, 33 (03)
  • [5] APINetworks Java']Java. A Java']Java approach to the efficient treatment of large-scale complex networks
    Munoz-Caro, Camelia
    Nino, Alfonso
    Reyes, Sebastian
    Castillo, Miriam
    [J]. COMPUTER PHYSICS COMMUNICATIONS, 2016, 207 : 549 - 552
  • [6] Large-Scale Dataset of Local Java']Java Software Build Results
    Sulir, Matus
    Bacikova, Michaela
    Madeja, Matej
    Chodarev, Sergej
    Juhar, Jan
    [J]. DATA, 2020, 5 (03) : 1 - 11
  • [7] Large-scale parallel geophysical algorithms in Java']Java: a feasibility study
    Jacob, M
    Philippsen, M
    Karrenbach, M
    [J]. CONCURRENCY-PRACTICE AND EXPERIENCE, 1998, 10 (11-13): : 1143 - 1153
  • [8] A large-scale study on the usage of Java']Java's concurrent programming constructs
    Pinto, Gustavo
    Torres, Weslley
    Fernandes, Benito
    Castor, Fernando
    Barros, Roberto S. M.
    [J]. JOURNAL OF SYSTEMS AND SOFTWARE, 2015, 106 : 59 - 81
  • [9] License Usage and Changes: A Large-Scale Study of Java']Java Projects on GitHub
    Vendome, Christopher
    Linares-Vasquez, Mario
    Bavota, Gabriele
    Di Penta, Massimiliano
    German, Daniel
    Poshyvanyk, Denys
    [J]. 2015 IEEE 23RD INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION ICPC 2015, 2015, : 218 - 228
  • [10] SanFrancisco performance: A case study in performance of large-scale Java']Java applications
    Christ, R
    Halter, SL
    Lynne, K
    Meizer, S
    Munroe, SJ
    Pasch, M
    [J]. IBM SYSTEMS JOURNAL, 2000, 39 (01) : 4 - 20