Workload characterization of JVM languages

Software—Practice & Experience(2016)

引用 7|浏览79
暂无评分
摘要
Originally developed with a single language in mind, the JVM is now targeted by numerous programming languages-its automatic memory management, just-in-time compilation, and adaptive optimizations-making it an attractive execution platform. However, the garbage collector, the just-in-time compiler, and other optimizations and heuristics were designed primarily with the performance of Java programs in mind. Consequently, many of the languages targeting the JVM, and especially the dynamically typed languages, are suffering from performance problems that cannot be simply solved at the JVM side. In this article, we aim to contribute to the understanding of the character of the workloads imposed on the JVM by both dynamically typed and statically typed JVM languages. To this end, we introduce a new set of dynamic metrics for workload characterization, along with an easy-to-use toolchain to collect the metrics. We apply the toolchain to applications written in six JVM languages Java, Scala, Clojure, Jython, JRuby, and JavaScript and discuss the findings. Given the recently identified importance of inlining for the performance of Scala programs, we also analyze the inlining behavior of the HotSpot JVM when executing bytecode originating from different JVM languages. As a result, we identify several traits in the non-Java workloads that represent potential opportunities for optimization. Copyright © 2015John Wiley & Sons, Ltd.
更多
查看译文
关键词
dynamic program analysis
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要