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.
|
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.
|
Subsections
Next: VM Register Conventions
Up: Experiences Porting the Jikes
Previous: Operating system issues
Stephen Fink
2002-05-23