Using complete system simulation to characterize SPECjvm98 benchmarks
Proceedings of the 14th international conference on Supercomputing
Allowing for ILP in an embedded Java processor
Proceedings of the 27th annual international symposium on Computer architecture
Improving Java performance using hardware translation
ICS '01 Proceedings of the 15th international conference on Supercomputing
Proceedings of the 2001 ACM SIGMETRICS international conference on Measurement and modeling of computer systems
Adapting Tomasulo's algorithm for bytecode folding based Java processors
ACM SIGARCH Computer Architecture News - Special Issue: PACT 2001 workshops
An analytical POC stack operations folding for continuous and discontinuous Java bytecodes
Journal of Systems Architecture: the EUROMICRO Journal
Code protection for resource-constrained embedded devices
Proceedings of the 2004 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
High performance annotation-aware JVM for Java cards
Proceedings of the 5th ACM international conference on Embedded software
Local variable access behavior of a hardware-translation based Java virtual machine
Journal of Systems and Software
JVM-hosted languages: they talk the talk, but do they walk the walk?
Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools
Hi-index | 0.00 |
This paper identifies some of the most important execution characteristics of a recent suite of Java benchmarks (SPEC JVM98) from a bytecode perspective and while running in an interpreted environment on the Sun Ultra SPARC-II. We instrumented the Java Virtual Machine (JVM) to obtain detailed traces and developed a Java bytecode analyzer environment called JABA to characterize the applications at the bytecode level. Utilizing JABA and SPARC profiling tools, we analyze bytecode locality, instruction mix and dynamic method sizes. It is observed that less than 45 out of the 250 Java bytecodes constitute 90% of the bytecode stream. A tri-nodal distribution with peaks of 1, 10 and 27 bytecodes is observed for method size across all benchmarks in the JVM98 suite. For most of the applications one bytecode is seen to translate into approximately 25 SPARC instructions.