The topic of this paper is performance on a Dalvik virtual machine (VM) for equivalent benchmark apps generated from Scala sources by a Scala compiler or from Java sources by a Java compiler. The metrics of interest are differences in efficiency and power consumption between Scala and Java bytecodes. The choice of benchmarks, always fraught with compromise, falls on a couple of active open-source code implementations, one of which is computationally intensive while the other is memory management intensive. This choice is appropriate for the work described in this paper, which is exploratory and aims at a general overview of behavior rather than at the itemization of strength or weaknesses.
Leveraging an active open-source project is a responsible effort to choose benchmarks for which execution is representative of language implementation rather than coding skills. The experimental setup comprises middling handheld hardware, likely a consequence of a pace of innovation measured in months. This work presents results from only one hardware device. It might have been desirable to use more than one execution platform; this is perhaps a flaw in the study.
The paper presents its factual results in a fair context, except for one graph in which half of the visual range encompasses one percent of the y-axis scale. The work is refreshingly short, in line with the exploratory, introductory scope, and its results are interesting as an overview and also perhaps mildly surprising. Summary and conclusions could provide more details about possible follow-up work. For example, investigating behavior under concurrency is deserving of explicit mention, even for handheld devices, and an instance where Java and Scala are likely to differ given Java’s imperative synchronization paradigm and Scala’s functional actor model.