In the movie Marathon Man, the protagonist, portrayed by Dustin Hoffman, was handcuffed to a chair while an ex-Nazi dentist, played by Laurence Olivier, exposed one of Hoffmans dental nerves and asked his patient repetitively, Is it safe? The dentist poked the nerve whenever he didnt like the answer. The victim, attempting to give an answer the doctor would accept, said, Its safe; its very safe. Unconvinced, Olivier jabbed the nerve again and asked, Is it safe? Our protagonist tried a different tactic and said, No, its not safe; in fact, its very dangerous, resulting in another nudge against his nerve. The doctor clearly felt that his patient knew more than he was telling, so he just kept asking the same question, Is it safe? while jabbing at an exposed nerve.
AS/400 professionals have been asking a similar question. Apparently unconvinced by IBMs Java initiative, AS/400 business programmers have exposed Javas nerve: speed. After all, how fast can an interpreted language be? So AS/400 experts have been asking repetitively, Is it fast? They havent handcuffed IBM to a chair, but they have exposed a sensitive nerve.
That Was Then; This Is Now
The AS/400 was on V3R7 when IBM first began pushing Java and AS/400 professionals first began asking, Is it fast? The answer was, No, but it may be later. Many shops tried to ignore the issue, but IBMs Java initiative marketing techniques were relentless, so programmers asked, Is it fast? V4R2 rolled out, and IBMs answer became, No, but its getting there. V4R3 hit the streets, and IBM said, Almost. V4R3s Java Virtual Machine (JVM) was at Java Development Kit (JDK) Version 1.1.6, whereas V4R2s JVM was at JDK 1.1.4. The improvements in standard JDK technologies coupled with the AS/400s below the MI JVM implementation netted a 50 percent speed gain.
Now that V4R4 is available, the question Is it fast is being asked once again. And the answer this time? Yes! Finally! IBM now tells us that V4R4s JVM is 2.5 times faster than V4R3s. IBM attributes this drastic gain to a combination of general speed improvements in V4R4, OS/400s implementation of JDK 1.1.7, faster CPUs, and larger L2 cache.
What About jBob?
Despite IBMs claims, AS/400 professionals remained unconvinced. They wanted proof that Java could handle real-world business applications. To prove the speed of the AS/400s Java environment, IBM looked to the various Java benchmarks, but benchmarks are not based on business applications. So IBM developed its own benchmark, as explained in the white paper IBM AS/400 Business Object Benchmark for Java (jBOB) (www.as400.ibm.com/whpapr/jbob400.htm). IBMs jBOB white paper notes that one of the better-known Java benchmarks, VolanoMark (www.volano.com), models, of all things, a chat room. AS/400 applications are entirely different from chat room software. IBM wanted a Java benchmark that tested Java in commercial, online transaction processing (OLTP) applications. AS/400 programmers arent going to move to Java based on the speed of chat rooms! They want to be sure that Java, on the AS/400, will handle the workload of thousands of transactions and hundreds of current connections. So IBM developed jBOB to test such transaction-intensive business applications.
IBM performed its benchmark tests on an AS/400e server running V4R4. Results show a throughput of approximately 104 jBOB transactions per second (jtps). The tests also show that the AS/400e server was able to support over 2,200 users. Why do these numbers look so good? A consultant report from D.H. Andrews Group, AS/400 and JavaPerfect Together (www.as400.ibm.com/conslt/perfect.htm), identifies several reasons that the AS/400 Java applications scale well. One is Rochesters unique implementation of garbage collection (Javas automatic memory management). The implementation of garbage collections on most platforms forces the JVM to freeze while the JVM cleans up memory. The AS/400s implementation of garbage collection, however, runs concurrently with no halts in JVM execution, but the report also points out that the AS/400s new Northstar 64-bit PowerPC processor is a key reason for the measurable improvements in the AS/400 JVM speeds. Another contributor to that speed, the report explains, is IBMs implementation of a JVM as part of the lower Systems Licensed Internal Code (SLIC) layer of AS/400 system software. IBMs AS/400 FAQ Web page (www.as400.ibm.com/developer/java/faq/performancefaq.html#3) offers a few other reasons for the JVM jBOB benchmark results. One is the AS/400 Java transformer that automatically compiles Java classes into optimized AS/400 machine instructions. Another is the optimized JVM with data structures and algorithms that are designed to handle server workloads with high numbers of threads and objects.
Is it fast? Yes. Can it be faster? Yes. Is it as fast as RPG? No. But you cant compare object-oriented programming (OOP) languages like C++ and Java with structured programming languages like RPG and COBOL. The point is that Java is now, with V4R4, fast enough for the development of robust business applications. Furthermore, because of its architecture, the AS/400 is one of the most attractive server platforms for the myriad of cross-platform Java applications under development today.