Comparison of factors influencing bytecode usage in the Java Virtual Machine (2000) [2 citations — 2 self]
Abstract:
The purpose of this paper is to look at factors which influence bytecode usage in the Java Virtual Machine by Java programs, such as the number of Application Programming Interface (API) methods executed, and the compiler that was used to generate the class files. The dynamic percentages of bytecode instructions and non-native method calls in both API and program methods used by a selection of different programs were studied to compare the way different applets and applications use the bytecodes. It was found that 74:1 % of bytecodes executed and 67:1 % of Java methods are in the API for the programs studied. This suggests a way to improve the speed of Java programs would be to compile the API methods to native instructions and save these on disk in a standard format, cutting the time spent compiling or interpreting bytecode. Non-API program methods only used 18:1 bytecodes on average when executed and Java API methods on average 23:8 bytecodes. One interesting factor to note is that more static methods were invoked than virtual methods by the non-API bytecodes. Remarkably very similar bytecode frequencies were obtained using the different compilers because many traditional optimisations performed by compilers cannot be used when converting a Java program to bytecode. 1.
Citations
| 62 | Java Language Specification, Addison-Wesley Pub Co – Joy - 2000 |
| 2 | Byte 46 – Bowles - 1978 |
| 1 | Analysis of the Java Class File Format – Aho, Ullman, et al. - 1986 |

