Portable and Accurate Collection of Calling-Context-Sensitive Bytecode Metrics for the Java Virtual Machine

Aibek Sarimbekov, Andreas Sewe, Walter Binder, Philippe Moret, Martin Schoeberl, Mira Mezini

    Research output: Chapter in Book/Report/Conference proceedingArticle in proceedingsResearchpeer-review

    278 Downloads (Pure)

    Abstract

    Calling-context profiles and dynamic metrics at the bytecode level are important for profiling, workload characterization, program comprehension, and reverse engineering. Prevailing tools for collecting calling-context profiles or dynamic bytecode metrics often provide only incomplete information or suffer from limited compatibility with standard JVMs. However, completeness and accuracy of the profiles is essential for tasks such as workload characterization, and compatibility with standard JVMs is important to ensure that complex workloads can be executed. In this paper, we present the design and implementation of JP2, a new tool that profiles both the inter- and intra-procedural control flow of workloads on standard JVMs. JP2 produces calling-context profiles preserving callsite information, as well as execution statistics at the level of individual basic blocks of code. JP2 is complemented with scripts that compute various dynamic bytecode metrics from the profiles. As a case-study and tutorial on the use of JP2, we use it for crossprofiling for an embedded Java processor.
    Original languageEnglish
    Title of host publicationProceedings of the 9th International Conference on the Principles and Practice of Programming in Java (PPPJ 2011)
    PublisherACM
    Publication date2011
    ISBN (Print)978-1-4503-0935-6
    Publication statusPublished - 2011
    Event9th International Conference on the Principles and Practice of Programming in Java - Kongens Lyngby, Denmark
    Duration: 24 Aug 201126 Aug 2011
    Conference number: 9
    http://pppj2011.imm.dtu.dk/

    Conference

    Conference9th International Conference on the Principles and Practice of Programming in Java
    Number9
    CountryDenmark
    CityKongens Lyngby
    Period24/08/201126/08/2011
    Internet address

    Bibliographical note

    © ACM, 2011. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in PPPJ 2011.

    Keywords

    • Java Virtual Machine
    • Cross-profiling
    • Bytecode instrumentation
    • Calling Context Tree

    Cite this

    Sarimbekov, A., Sewe, A., Binder, W., Moret, P., Schoeberl, M., & Mezini, M. (2011). Portable and Accurate Collection of Calling-Context-Sensitive Bytecode Metrics for the Java Virtual Machine. In Proceedings of the 9th International Conference on the Principles and Practice of Programming in Java (PPPJ 2011) ACM.
    Sarimbekov, Aibek ; Sewe, Andreas ; Binder, Walter ; Moret, Philippe ; Schoeberl, Martin ; Mezini, Mira. / Portable and Accurate Collection of Calling-Context-Sensitive Bytecode Metrics for the Java Virtual Machine. Proceedings of the 9th International Conference on the Principles and Practice of Programming in Java (PPPJ 2011). ACM, 2011.
    @inproceedings{0c69710f64f44c2e9144b3a7b8972d44,
    title = "Portable and Accurate Collection of Calling-Context-Sensitive Bytecode Metrics for the Java Virtual Machine",
    abstract = "Calling-context profiles and dynamic metrics at the bytecode level are important for profiling, workload characterization, program comprehension, and reverse engineering. Prevailing tools for collecting calling-context profiles or dynamic bytecode metrics often provide only incomplete information or suffer from limited compatibility with standard JVMs. However, completeness and accuracy of the profiles is essential for tasks such as workload characterization, and compatibility with standard JVMs is important to ensure that complex workloads can be executed. In this paper, we present the design and implementation of JP2, a new tool that profiles both the inter- and intra-procedural control flow of workloads on standard JVMs. JP2 produces calling-context profiles preserving callsite information, as well as execution statistics at the level of individual basic blocks of code. JP2 is complemented with scripts that compute various dynamic bytecode metrics from the profiles. As a case-study and tutorial on the use of JP2, we use it for crossprofiling for an embedded Java processor.",
    keywords = "Java Virtual Machine, Cross-profiling, Bytecode instrumentation, Calling Context Tree",
    author = "Aibek Sarimbekov and Andreas Sewe and Walter Binder and Philippe Moret and Martin Schoeberl and Mira Mezini",
    note = "{\circledC} ACM, 2011. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in PPPJ 2011.",
    year = "2011",
    language = "English",
    isbn = "978-1-4503-0935-6",
    booktitle = "Proceedings of the 9th International Conference on the Principles and Practice of Programming in Java (PPPJ 2011)",
    publisher = "ACM",

    }

    Sarimbekov, A, Sewe, A, Binder, W, Moret, P, Schoeberl, M & Mezini, M 2011, Portable and Accurate Collection of Calling-Context-Sensitive Bytecode Metrics for the Java Virtual Machine. in Proceedings of the 9th International Conference on the Principles and Practice of Programming in Java (PPPJ 2011). ACM, 9th International Conference on the Principles and Practice of Programming in Java, Kongens Lyngby, Denmark, 24/08/2011.

    Portable and Accurate Collection of Calling-Context-Sensitive Bytecode Metrics for the Java Virtual Machine. / Sarimbekov, Aibek; Sewe, Andreas; Binder, Walter; Moret, Philippe; Schoeberl, Martin; Mezini, Mira.

    Proceedings of the 9th International Conference on the Principles and Practice of Programming in Java (PPPJ 2011). ACM, 2011.

    Research output: Chapter in Book/Report/Conference proceedingArticle in proceedingsResearchpeer-review

    TY - GEN

    T1 - Portable and Accurate Collection of Calling-Context-Sensitive Bytecode Metrics for the Java Virtual Machine

    AU - Sarimbekov, Aibek

    AU - Sewe, Andreas

    AU - Binder, Walter

    AU - Moret, Philippe

    AU - Schoeberl, Martin

    AU - Mezini, Mira

    N1 - © ACM, 2011. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in PPPJ 2011.

    PY - 2011

    Y1 - 2011

    N2 - Calling-context profiles and dynamic metrics at the bytecode level are important for profiling, workload characterization, program comprehension, and reverse engineering. Prevailing tools for collecting calling-context profiles or dynamic bytecode metrics often provide only incomplete information or suffer from limited compatibility with standard JVMs. However, completeness and accuracy of the profiles is essential for tasks such as workload characterization, and compatibility with standard JVMs is important to ensure that complex workloads can be executed. In this paper, we present the design and implementation of JP2, a new tool that profiles both the inter- and intra-procedural control flow of workloads on standard JVMs. JP2 produces calling-context profiles preserving callsite information, as well as execution statistics at the level of individual basic blocks of code. JP2 is complemented with scripts that compute various dynamic bytecode metrics from the profiles. As a case-study and tutorial on the use of JP2, we use it for crossprofiling for an embedded Java processor.

    AB - Calling-context profiles and dynamic metrics at the bytecode level are important for profiling, workload characterization, program comprehension, and reverse engineering. Prevailing tools for collecting calling-context profiles or dynamic bytecode metrics often provide only incomplete information or suffer from limited compatibility with standard JVMs. However, completeness and accuracy of the profiles is essential for tasks such as workload characterization, and compatibility with standard JVMs is important to ensure that complex workloads can be executed. In this paper, we present the design and implementation of JP2, a new tool that profiles both the inter- and intra-procedural control flow of workloads on standard JVMs. JP2 produces calling-context profiles preserving callsite information, as well as execution statistics at the level of individual basic blocks of code. JP2 is complemented with scripts that compute various dynamic bytecode metrics from the profiles. As a case-study and tutorial on the use of JP2, we use it for crossprofiling for an embedded Java processor.

    KW - Java Virtual Machine

    KW - Cross-profiling

    KW - Bytecode instrumentation

    KW - Calling Context Tree

    M3 - Article in proceedings

    SN - 978-1-4503-0935-6

    BT - Proceedings of the 9th International Conference on the Principles and Practice of Programming in Java (PPPJ 2011)

    PB - ACM

    ER -

    Sarimbekov A, Sewe A, Binder W, Moret P, Schoeberl M, Mezini M. Portable and Accurate Collection of Calling-Context-Sensitive Bytecode Metrics for the Java Virtual Machine. In Proceedings of the 9th International Conference on the Principles and Practice of Programming in Java (PPPJ 2011). ACM. 2011