|
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 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.