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 language | English |
---|---|
Title of host publication | Proceedings of the 9th International Conference on the Principles and Practice of Programming in Java (PPPJ 2011) |
Publisher | ACM |
Publication date | 2011 |
ISBN (Print) | 978-1-4503-0935-6 |
Publication status | Published - 2011 |
Event | 9th International Conference on the Principles and Practice of Programming in Java - Kongens Lyngby, Denmark Duration: 24 Aug 2011 → 26 Aug 2011 Conference number: 9 http://pppj2011.imm.dtu.dk/ |
Conference
Conference | 9th International Conference on the Principles and Practice of Programming in Java |
---|---|
Number | 9 |
Country/Territory | Denmark |
City | Kongens Lyngby |
Period | 24/08/2011 → 26/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