Optimizing an ANSI C interpreter with superoperators
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Platform independent dynamic Java virtual machine analysis: the Java Grande Forum Benchmark suite
Proceedings of the 2001 joint ACM-ISCOPE conference on Java Grande
Java Virtual Machine Specification
Java Virtual Machine Specification
Bigram analysis of Java bytecode sequences
PPPJ '02/IRE '02 Proceedings of the inaugural conference on the Principles and Practice of programming, 2002 and Proceedings of the second workshop on Intermediate representation engineering for virtual machines, 2002
Analysis of the Java Class File Format
Analysis of the Java Class File Format
Overview of the IBM Java just-in-time compiler
IBM Systems Journal
A quantitative analysis of the performance impact of specialized bytecodes in java
CASCON '04 Proceedings of the 2004 conference of the Centre for Advanced Studies on Collaborative research
Platform Independent Timing of Java Virtual Machine Bytecode Instructions
Electronic Notes in Theoretical Computer Science (ENTCS)
Software execution processes as an evolving complex network
Information Sciences: an International Journal
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 |
A variety of studies have been performed which analyse the bytecodes executed by a Java Virtual Machine (JVM). The simplest of these studies perform a static analysis of the bytecodes in the classes that make up the program [1]. Other studies have examined the dynamic behaviour of the program, only considering those individual bytecodes that are actually executed [2, 3]. Dynamic studies have also been extended to determine which bytecode pairs are commonly executed [4]. This work builds on these previous studies by extending the dynamic analysis from bigrams (bytecode pairs) to multicodes (variable length sequences) up to 20 bytecodes in length. The algorithms used to determine the multicodes are presented in addition to the most commonly occurring multicodes for a selection of benchmarks. Determining these multicodes is relevant to research into instruction set design. It is also directly applicable to interpreter optimization techniques such as super operators [5] and just-in-time compiler optimization techniques including bytecode idioms [6].