TY - GEN
T1 - JBrainy: Micro-benchmarking Java Collections with Interference (Work in Progress Paper)
AU - Couderc, Noric
AU - Söderberg, Emma
AU - Reichenbach, Christoph
PY - 2020
Y1 - 2020
N2 - Software developers use collection data structures extensively andare often faced with the task of picking which collection to use.Choosing an inappropriate collection can have major negativeimpact on runtime performance. However, choosing the right collectioncan be difficult since developers are faced with many possibilities,which often appear functionally equivalent. One approachto assist developers in this decision-making process is to microbenchmarkdatastructures in order to provide performance insights. In this paper, we present results from experiments on Java collections(maps, lists, and sets) using our tool JBrainy, which synthesisesmicro-benchmarks with sequences of random method calls.We compare our results to the results of a previous experiment onJava collections that uses a micro-benchmarking approach focusedon single methods. Our results support previous results for lists, inthat we found ArrayList to yield the best running time in 90% ofour benchmarks. For sets, we found LinkedHashSet to yield thebest performance in 78% of the benchmarks. In contrast toprevious results, we found TreeMap and LinkedHashMap to yield betterruntime performance than HashMap in 84% of cases.
AB - Software developers use collection data structures extensively andare often faced with the task of picking which collection to use.Choosing an inappropriate collection can have major negativeimpact on runtime performance. However, choosing the right collectioncan be difficult since developers are faced with many possibilities,which often appear functionally equivalent. One approachto assist developers in this decision-making process is to microbenchmarkdatastructures in order to provide performance insights. In this paper, we present results from experiments on Java collections(maps, lists, and sets) using our tool JBrainy, which synthesisesmicro-benchmarks with sequences of random method calls.We compare our results to the results of a previous experiment onJava collections that uses a micro-benchmarking approach focusedon single methods. Our results support previous results for lists, inthat we found ArrayList to yield the best running time in 90% ofour benchmarks. For sets, we found LinkedHashSet to yield thebest performance in 78% of the benchmarks. In contrast toprevious results, we found TreeMap and LinkedHashMap to yield betterruntime performance than HashMap in 84% of cases.
U2 - 10.1145/3375555.3383760
DO - 10.1145/3375555.3383760
M3 - Paper in conference proceeding
SN - 978-1-4503-7109-4
SP - 42
EP - 45
BT - Proceedings of the 11th ACM/SPEC international conference on Performance Engineering
PB - Association for Computing Machinery (ACM)
T2 - 11th ACM/SPEC International Conference on Performance Engineering
Y2 - 20 April 2020 through 24 April 2020
ER -