In Affiliation
=@MACARLO MICROSOFT= =@MACARLO YAHOO= =@MACARLO WEBALIAS= =@MACARLO ALTAVISTA=
|
![]()
![]()
Now
there's Java performance on Linux that's as fast as on Windows
![]()
Steve
Brody and IBM Staff
October 1999
IBM has released its latest Java port for Linux, the Java 1.1.8 IBM Developer Kit for Linux. Faster than its predecessor (the Developer Kit for Java 1.1.6), this newest implementation is competitive with IBM's Java for Windows, previously the fastest of the free implementations of Java.
Following close on the heels of its release earlier this year of a Linux port of Sun's JDK 1.1.6, IBM has announced the latest and fastest Java release for Linux, the Java 1.1.8 IBM Developer Kit for Linux. IBM's latest port -- compliant with Sun's Version 1.1.8 Java compatibility test -- exceeds the performance of the earlier version, and contains IBM's Just-In-Time (JIT) compiling technology and Mixed Mode Interpreter (MMI) ported to the Linux environment. These enhancements have resulted in a performance gain on the industry benchmarks over the previous release, making Java performance for Linux comparable to Windows.
An alpha version of the Developer Kit has been available for download from alphaWorks for several months, and, says IBM's senior marketing manager with the Java business line Jeff Roberts, the final version is a stable, high-performance implementation of Java that enhances IBM's Linux-enabled middleware.
"We are very excited about the growth of the Linux operating system, and we are eager to bring the benefits of a high-performance Java implementation to the community and to IBM's middleware products for Linux that use Java, such as DB2, WebSphere, and others," said Roberts.
According to the Volano Report -- a benchmark that tests speed and scalability using Java chat sessions -- the performance of the IBM Developer Kit for Linux is only 13% less than the IBM Developer Kit for Windows, the industry's top performing dynamic compiler, tested on a 200 MHz Intel Pentium Pro processor with 256 KB of L2 cache and 256 MB of RAM. According to IBM's Java group, internal testing based on later builds of the Developer Kit on systems with a faster processor, larger memory, and L2 cache has indicated that the VolanoMark 2.1.2 benchmark would run equally fast on both IBM Developer Kits, Windows and Linux.
Roberts added that the release is another milestone in IBM's continued commitment to Java, since the port of JDK 1.1.6 in June, and that the IBM Developer Kit 1.1.6 has been downloaded over 20,000 times. IBM also recently announced Jikes, a command-line Java compiler that supports the most recent version of the Java language specification, including JDK 1.2/Java 2 (see "Resources" at the end of this article). The next step, says Roberts, is an implementation of Java 2 expected to be available next year.
"Some developers are wondering why we are still focusing on pre-Java 2 versions," said Roberts, "but the fact is that we have many developers requesting this version. Java 2 has some new functions, but for some applications 1.1.8 is still preferable."
Pushing
the envelope
A number of technical innovations distinguish the new 1.1.8 Developer Kit from
the 1.1.6 Developer Kit, but perhaps the most important is the synergy between
IBM's Just-In-Time (JIT) compiler and the new Linux port of IBM's Mixed Mode
Interpreter (MMI).
The JIT, which converts Java bytecode sequences on the fly into an equivalent sequence of the underlying machine's native code, optimizes the original Java bytecode sequences and applies various code generation techniques, such as method inlining, loop versioning, fast type inclusion testing, and others to speed up compilation.
Performance is further ramped up by the MMI, which delays the Just-In-Time compilation of certain methods until it is clear that the time spent to compile them is justified. Methods not deemed sufficiently important to warrant compilation will continue to be interpreted.
MMI facilitates the use of more sophisticated JIT compiler optimization techniques, resulting in better code and a net overall improvement in application load time, without degrading overall processing performance, according to IBM. Optimization techniques, such as method inlining, data flow analysis for exception checking, loop versioning, fast type inclusion testing, and common subexpression elimination allow for more effective use of system resources and generate tight code tuned to exploit the Intel architecture.
Scaling
IBM's Java group will continue to focus on enhancing Java performance on Linux,
in particular with an eye to solving its limitations in scaling. IBM's 1.1.8
port has performed well on the VolanoMark benchmark when the number of simultaneous
chat sessions is limited, but the port has had difficulty scaling to a large
number of simultaneous sessions. This is due, in part, says Rajiv Arora, a senior
performance engineer at IBM Austin, to the manner in which Linux handles threading.
By using native threading, IBM's JVM can exploit symmetric multiprocessor (SMP)
systems, something none of the other Linux JVMs can. However, the current implementation
of Linux threading, where each thread is mapped to a separate process, is just
too heavyweight to scale to thousands of threads. A number of options are being
considered by IBM to enhance the connection scaling of future Java releases,
despite the limitations of Linux threads.
About the
author
Steve Brody is a contract writer and editor for developerWorks. He has contributed
to a wide variety of online news resources including Wired News, CNet's
News.com,
CNN Interactive, LinuxWorld, JavaWorld, and SunWorld. Prior to developerWorks, Steve was a contract
editor for IDG's SunWorld.
![]()
![]()
@Macarlo, Inc.
@Macarlo's Shareware & Web
OS/2
Java Lobby Member
Java Site Accredited