Abstract
Since benchmarks drive computer science research and industry product development, which ones we use and how we evaluate them are key questions for the community. Despite complex runtime tradeoffs due to dynamic compilation and garbage collection required for Java programs, many evaluations still use methodologies developed for C, C++, and Fortran. SPEC, the dominant purveyor of benchmarks, compounded this problem by institutionalizing these methodologies for their Java benchmark suite. This paper recommends benchmarking selection and evaluation methodologies, and introduces the DaCapo benchmarks, a set of open source, client-side Java benchmarks. We demonstrate that the complex interactions of (1) architecture, (2) compiler, (3) virtual machine, (4) memory management, and (5) application require more extensive evaluation than C, C++, and Fortran which stress (4) much less, and do not require (3). We use and introduce new value, time-series, and statistical metrics for static and dynamic properties such as code complexity, code size, heap composition, and pointer mutations. No benchmark suite is definitive, but these metrics show that DaCapo improves over SPEC Java in a variety of ways, including more complex code, richer object behaviors, and more demanding memory system requirements. This paper takes a step towards improving methodologies for choosing and evaluating benchmarks to foster innovation in system design and implementation for Java and other managed languages.
Original language | English |
---|---|
Title of host publication | Proceedings of the 21st Annual ACM SIGPLAN Conference on Object-oriented Programming Systems, Languages, and Applications, OOPSLA 2006 |
Place of Publication | New York |
Publisher | Association for Computing Machinery (ACM) |
Pages | 169-190 |
Number of pages | 22 |
ISBN (Print) | 1595933484, 9781595933485 |
DOIs | |
Publication status | Published - Oct 2006 |
Event | 21st Annual ACM SIGPLAN Conference on Object-oriented Programming Systems, Languages, and Applications, OOPSLA 2006 - Portland, United States Duration: 22 Oct 2006 → 26 Oct 2006 Conference number: 21st https://dl.acm.org/doi/proceedings/10.1145/1167473 |
Publication series
Name | ACM SIGPLAN Notices |
---|---|
Number | 10 |
Volume | 41 |
ISSN (Print) | 0362-1340 |
ISSN (Electronic) | 1558-1160 |
Conference
Conference | 21st Annual ACM SIGPLAN Conference on Object-oriented Programming Systems, Languages, and Applications, OOPSLA 2006 |
---|---|
Abbreviated title | OOPSLA 2006 |
Country/Territory | United States |
City | Portland |
Period | 22/10/06 → 26/10/06 |
Other | OOPSLA 2006, the 21st Annual Conference on Object-Oriented Programming, Systems, Languages, and Applications, is the premier forum for practitioners, researchers, and students in diverse disciplines whose common threads are objects and related technologies. From its inception, OOPSLA has served as an incubator for advanced technologies and practices. Dynamic compilation and optimization, patterns, refactoring, aspect-oriented software development, agile methods, service-oriented architectures and model-driven development (to name a few) all have OOPSLA roots.. |
Internet address |