× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: Java/400 Performance: Good News and Bad News
  • From: pluta@xxxxxxxxxxxxxxxxxx
  • Date: Fri, 10 Sep 1999 10:14:22 -0500






Recently in the News/400 forum, a couple of readers and I have begun a thread on
testing Java/400 performance. (The URL is
http://www.news400.com/Forums/Thread.cfm?CFApp=36&Thread_ID=9888&mc=13 if you're
interested in following the thread.) I've spent quite a bit of time over the
last week putting together a test bed. Well, last night (this morning <sigh>) I
got the first pass done, and there's good news and bad news.

The good news is that I've pretty much designed and developed the infrastructure
for the Performance Test Suite. It got a little complicated, because I wanted to
be able to support multiple environments and have a little flexibility, while at
the same time making it very easy to code the programs. To that end, I've got a
pretty good system. You can define "suites" of tests, and then execute multiple
"runs" of those suites (varying things like number of iterations, batch vs.
interactive and so on).

Even better news is that it's all table driven down to the point of calling the
test programs with a standard set of parameters. There's also a standard logging
API, so that a typical RPG test program looks as follows:

 FJ4PF01  IF  E                    DISK
 C           *ENTRY    PLIST
 C                     PARM           XIRUID 10
 C                     PARM           XISEQ   30
 C                     PARM           XIREP  120
 C*
 C                     CALL 'J4PLOG'
 C                     PARM           XIRUID
 C                     PARM           XISEQ
 C*
 C                     EXSR PROCES
 C*
 C                     CALL 'J4PLOG'
 C                     PARM           XIRUID
 C                     PARM           XISEQ
 C*
 C                     MOVE *ON       *INLR
 C*
 C           PROCES    BEGSR
 C           1         DO   XIREP
 C                     READ J4PF01                   90
 C                     ENDDO
 C                     ENDSR


Pretty straightforward. The only thing that changes on another test program is
the file specs and the PROCES subroutine.

The bad news? Well, a similar Java program ran really, really poorly. How
poorly? Well, you can look at the stats yourself:



 LORUID      LOSEQ              LOEND - LOSTR
 ----------  -----              -------------
 HOST10I        1                     .603000
 HOST10I        2                   13.979000
 HOST10B        1                     .505000
 HOST10B        2                   13.874000
 JAVA10         1                    2.959000
 JAVA10         2                  312.466000
 JAVA10H        1                   24.833000
 JAVA10HB       1                   24.907000



Basically, the LOSEQ=1 tests are sequential read tests, while the LOSEQ=2 tests
are sequential read and update tests. HOST10I is RPG interactive, HOST10B is RPG
batch, JAVA10 is Java run on the client, and JAVA10H is Java run on the AS/400
under QShell. I did 10,000 iterations for each of the tests. The elapsed time is
in seconds.

Basically, Java on the client is 5 times slower to read and 22 times slower to
update than RPG. Java on the AS/400 is roughly 50 times slower to read. I didn't
have the heart to run the update portion. This is all on V4R3M0 on a dedicated
Model 150.

These are not particularly good numbers, but they do tend to reinforce my
assertion that RPG is still the language for business logic servers on the
AS/400. BTW, we plan on including COBOL programs in the test suite as well, and
if someone wants to do C/C++ versions, they're welcome to join in.

Anyway, I plan on finishing up the test suite tool before I head to Miami next
week, and if I do I'll post it on my website along with a very basic README for
how to install and use it.

Joe Pluta
http://www.java400.net, where the AS/400 speaks Java with an RPG accent
Home of PBD1.2P, the FREE Java/400 Client/Server Toolkit


+---
| This is the JAVA/400 Mailing List!
| To submit a new message, send your mail to JAVA400-L@midrange.com.
| To subscribe to this list send email to JAVA400-L-SUB@midrange.com.
| To unsubscribe from this list send email to JAVA400-L-UNSUB@midrange.com.
| Questions should be directed to the list owner: joe@zappie.net
+---


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.