Most of the optimisation works of the Linaro Android Runtime team are based on results of benchmarks. The benchmarks are either lightweight benchmarks, such as Dhrystone, benchmarksgame, caffeinemark, or micro-benchmarks. They were enough at the beginning of the Android Runtime (ART) development but the more ART evolved the more difficult became to assess the usefulness of optimization works. We needed more realistic benchmarks.
In this talk, I will share the ART team experience of bringing benchmarks from the Java world to Android. The biggest issues we had. We managed to port SPECjvm2008 workloads. They already have proved to be useful. They showed that an optimization added to the instruction scheduler gave real improvements. They also helped to identify about 40 opportunities for optimization in ART.
I will also give an overview of other Java benchmarks, such as DaCapo and Renaissance suite, we are planning to have. Our plans include the use of open-source Android apps for benchmarking code size, compilation time and startup time. Another area we are interested in is open-source Kotlin benchmarks.
A compiler engineer with experience of developing toolchains for the ARM architectures.<br /> A member of LCG ART team which optimizes the Android Runtime for the ARM architectures.