一句话:全面重构 DaCapo 基准套件,以 22 个工作负载和主成分分析支撑新的 Java 性能分析方法论。
本文以 Java 性能分析为切入点,讨论快速发展的计算领域与方法论基础维护之间的张力:基准难以维护、方法论难以发展,容易导致方法论滞后于创新。作者全面重构 DaCapo 基准套件,引入 22 个新增或刷新的工作负载,并在 47 个维度上刻画其特性,用主成分分析展示工作负载的多样性;同时提出若干新方法论并集成到易用框架中。基于该框架,作者分析当前生产级 Java 性能的水平,并以当代生产垃圾收集器性能为例说明更新方法论与工作负载的必要性。最后给出维护实证严谨性的建议,以促成有价值的研究方向并快速识别无价值方向。
Representative workloads and principled methodologies are the foundation of performance analysis, which in turn provides the empirical grounding for much of the innovation in systems research. However, benchmarks are hard to maintain, methodologies are hard to develop, and our field moves fast. The tension between our fast-moving fields and their need to maintain their methodological foundations is a serious challenge. This paper explores that challenge through the lens of Java performance analysis. Lessons we draw extend to other languages and other fields of computer science. In this paper we: i) introduce a complete overhaul of the DaCapo benchmark suite, [6] characterizing 22 new and/or refreshed workloads across 47 dimensions, using principal components analysis to demonstrate their diversity, ii) demonstrate new methodologies and how they are integrated into an easy to use framework, iii) use this framework to conduct an analysis of the state of the art in production Java performance, and iv) motivate the need to invest in renewed methodologies and workloads, using as an example a review of contemporary production garbage collector performance. We highlight the danger of allowing methodologies to lag innovation and respond with a suite and new methodologies that nudge forward some of our field's methodological foundations. We offer guidance on maintaining the empirical rigor we need to encourage profitable research directions and quickly identify unprofitable ones.