The DaCapo benchmarks: Java benchmarking development and analysis

Stephen M. Blackburn*, Robin Garner, Chris Hoffmann, Asjad M. Khang, Kathryn S. Mckinley, Rotem Bentzur, Amer Diwan, Daniel Feinberg, Daniel Frampton, Samuel Z. Guyer, Martin Hirzel, Antony Hosking, Maria Jump, Han Lee, J. Eliot B. Moss, Aashish Phansalkar, Darko Stefanoví, Thomas VanDrunen, Daniel Von Dincklage, Ben Wiedermann

*Corresponding author for this work

    Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

    695 Citations (Scopus)

    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 languageEnglish
    Title of host publicationProceedings of the 21st Annual ACM SIGPLAN Conference on Object-oriented Programming Systems, Languages, and Applications, OOPSLA 2006
    Place of PublicationNew York
    PublisherAssociation for Computing Machinery (ACM)
    Pages169-190
    Number of pages22
    ISBN (Print)1595933484, 9781595933485
    DOIs
    Publication statusPublished - Oct 2006
    Event21st Annual ACM SIGPLAN Conference on Object-oriented Programming Systems, Languages, and Applications, OOPSLA 2006 - Portland, United States
    Duration: 22 Oct 200626 Oct 2006
    Conference number: 21st
    https://dl.acm.org/doi/proceedings/10.1145/1167473

    Publication series

    NameACM SIGPLAN Notices
    Number10
    Volume41
    ISSN (Print)0362-1340
    ISSN (Electronic)1558-1160

    Conference

    Conference21st Annual ACM SIGPLAN Conference on Object-oriented Programming Systems, Languages, and Applications, OOPSLA 2006
    Abbreviated titleOOPSLA 2006
    Country/TerritoryUnited States
    CityPortland
    Period22/10/0626/10/06
    OtherOOPSLA 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

    Fingerprint

    Dive into the research topics of 'The DaCapo benchmarks: Java benchmarking development and analysis'. Together they form a unique fingerprint.

    Cite this