Check out the new USENIX Web site. next up previous
Next: VM Register Conventions Up: Experiences Porting the Jikes Previous: Operating system issues


Improving performance

The functional port of Jikes RVM to Linux/IA32 was mostly complete by the end of August 2001. The initial port achieved 35% of our performance target. Over the course of the next five months, Jikes RVM Linux/IA32 performance more than doubled to reach 95% of the IBM 1.3.0 DK. Figure 2 shows how the performance9 increased over this time period, and Figure 3 shows relative performance for each of the SPECjvm98 benchmarks10 as of February 2002. The results show that Jikes RVM performance is competitive overall, but lags behind the IBM DK on the two floating-point codes (mpegaudio and mtrt) and on compress (an array-based set of tight nested loops).

This section of the paper describes the main IA32 specific enhancements made to improve Linux/IA32 performance.11 The first section discusses performance-motivated changes to the VM's register conventions. The next two sections describe enhancements to the optimizing compiler's instruction selection and register allocation phases. Generating even mediocre IA32 floating point code was challenging; section 4.4 describes some of the alternatives we explored.

Figure 2: Monthly performance of Jikes RVM on the SPECjvm98 benchmarks as a percentage of the performance of the IBM 1.3.0 DK for Linux/IA32 from August 1, 2001 through February 1, 2002.
next

Figure 3: Performance of Jikes RVM on the individual SPECjvm98 benchmarks as a percentage of the performance of the IBM 1.3.0 DK for Linux/IA32 on February 1, 2002.
next



Subsections
next up previous
Next: VM Register Conventions Up: Experiences Porting the Jikes Previous: Operating system issues
Stephen Fink 2002-05-23