13.10.2014 Views

OPTIMIZING THE JAVA VIRTUAL MACHINE INSTRUCTION SET BY ...

OPTIMIZING THE JAVA VIRTUAL MACHINE INSTRUCTION SET BY ...

OPTIMIZING THE JAVA VIRTUAL MACHINE INSTRUCTION SET BY ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

61<br />

tual machine (RVM). Version 2.3.1 was tested in conjunction with Classpath version<br />

0.07. This virtual machine does not include an interpreter. Instead, this virtual machine<br />

takes a compile everything approach, using a just in time compiler to generate<br />

platform specific machine language code before each method is invoked. This virtual<br />

machine also performs a number of aggressive optimizations by recompiling those<br />

methods that account for the greatest proportion of application runtime.<br />

The final virtual machine that was considered was Sun’s Java Development Kit<br />

version j2sdk1.4.2 02. This virtual machine is classified as mixed mode, meaning<br />

that it makes use of both an interpreter and a JIT compiler. The interpreter is used<br />

initially. This allows the application to begin executing immediately without requiring<br />

the user to wait for JIT compilation to be performed. As the application executes,<br />

hot methods are identified which represent a large proportion of the application’s<br />

execution time. The JIT compiler is applied to these methods, generating optimized<br />

platform specific machine code. Using this technique prevents time from being wasted<br />

by compiling code that is executed infrequently while still providing the performance<br />

benefits of a JIT compiler for those portions of the application that execute with<br />

greatest frequency.<br />

These virtual machines were executed on a dual processor Intel Pentium III running<br />

Redhat Linux kernel 2.4.20-20.9smp. The machine had a clock rate of 600MHz<br />

and 256 megabytes of main memory.<br />

4.2.2 Benchmarks Tested<br />

Performance testing was conducted using the benchmarks from the widely accepted<br />

SPEC JVM98 Benchmark Suite. It includes 7 distinct applications that stress differing<br />

aspects of the virtual machine. The applications include:<br />

201 compress: Performs a modified Lempel-Ziv method of data compression.<br />

This involves examining the data stream in order to find common<br />

substrings that are replaced by a variable size code. The specific algorithm<br />

used is described in [120].<br />

202 jess: A expert system based on NASA’s CLIPS expert shell system<br />

[9]. The benchmark solves a series of puzzles by applying a set of rules to<br />

a set of facts in order to determine the result.<br />

209 db: Performs a series of operations on a memory resident database.<br />

The database is populated with one megabyte of names, addresses and

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!