The DaCapo benchmarks: Java']Java benchmarking development and analysis

被引:664
作者
Blackburn, Stephen M. [1 ]
Garner, Robin [1 ]
Hoffmann, Chris [2 ]
Khan, Asjad M. [2 ]
McKinley, Kathryn S. [3 ]
Bentzur, Rotem [4 ]
Diwan, Amer [5 ]
Feinberg, Daniel [4 ]
Frampton, Daniel [1 ]
Guyer, Samuel Z. [6 ]
Hirzel, Martin [7 ]
Hosking, Antony [8 ]
Jump, Maria [3 ]
Lee, Han
Moss, J. Eliot B. [2 ]
Phansalkar, Aashish
Stefanovic, Darko [4 ]
VanDrunen, Thomas [9 ]
von Dincklage, Daniel [5 ]
Wiedermann, Ben [3 ]
机构
[1] Australian Natl Univ, Canberra, ACT, Australia
[2] Univ Massachusetts, Amherst, MA 01003 USA
[3] Univ Texas Austin, Austin, TX 78712 USA
[4] Univ New Mexico, Albuquerque, NM 87131 USA
[5] Univ Colorado, Boulder, CO 80309 USA
[6] Tufts Univ, Medford, MA 02155 USA
[7] IBM Corp, TJ Watson Res Ctr, St Louis, MO 63123 USA
[8] Purdue Univ, W Lafayette, IN 47907 USA
[9] Wheaton Coll, Wheaton, IL 60187 USA
关键词
measurement; performance; methodology; benchmark; DaCapo; !text type='Java']Java[!/text; SPEC;
D O I
10.1145/1167515.1167488
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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 run-time 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.
引用
收藏
页码:169 / 190
页数:22
相关论文
共 42 条
[1]  
ALPERN B, 1999, ACM C OBJ OR PROGR S
[2]  
*AP SOFTW FDN, 2000, AP SOFTW LIC
[3]  
ATTANASIO C, 2001, P 14 WORKSH LANG COM
[4]  
BLACKBURN S. M., 2006, TRCS0601 AUSTR NAT U
[5]   Oil and water? High performance garbage collection in Java']Java with MMTk [J].
Blackburn, SM ;
Cheng, P ;
McKinley, KS .
ICSE 2004: 26TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, PROCEEDINGS, 2004, :137-146
[6]  
BLACKBURN SM, 2001, ACM C OBJ OR PROGR S, P342
[7]  
BLACKBURN SM, 2004, P ACM C MEAS MOD COM, P25
[8]  
BLACKBURN SM, 2002, ISMM 02, P175
[9]  
Blackburn Stephen M., 2004, P 4 INT S MEMORY MAN, P143, DOI DOI 10.1145/1029873.1029891
[10]  
BRECHT T, 2001, ACM C OBJ OR PROGR S, P353, DOI DOI 10.1145/504282.504308