Title :
Dynamic bytecode usage by object oriented Java programs
Author_Institution :
Sch. of Comput. Applications, Dublin City Univ., Ireland
Abstract :
Java is an object oriented language that has grown in popularity since its release in 1996 and is particularly interesting because it uses a byte code intermediate language to represent programs, so that the same program can be run unchanged on machines with different underlying instruction sets. To measure dynamic byte code usage it was necessary to modify the source code Kaffe, a Java Virtual Machine. A selection of programs was measured to compare the way different applets and applications use the bytecodes, and it was found that very similar patterns of usage appear in all cases. For the test suite studied most of the bytecodes were used at least once during execution. However a small subset of the bytecodes was executed with very high frequency. 40% of instructions executed either pushed local variables or constants onto the operand stack, merely telling the useful instructions which operands to use. This result questions the stack based design for the intermediate representation of Java programs, since the bytecodes only occupy on average twelve percent of a class file, an intermediate representation that is less compact, but executes more efficiently might be possible
Keywords :
Java; instruction sets; object-oriented programming; software tools; Java; Java Virtual Machine; Kaffe; applets; byte code intermediate language; class file; dynamic bytecode usage; instruction sets; object oriented language; object oriented programming; operand stack; pushed local variables; source code; test suite; Computer applications; Computer architecture; Embedded system; Encoding; Frequency; Instruction sets; Java; Programming; Testing; Virtual machining;
Conference_Titel :
Technology of Object-Oriented Languages and Systems, 1999. Proceedings of
Conference_Location :
Nancy
Print_ISBN :
978-0-7695-0275-5
DOI :
10.1109/TOOLS.1999.779084