On 16/05/2021 12:59 pm, David Crayford wrote:

And there is a good chance that you could introduce unacceptable software charges. I've worked on performance reporting tools for over two decades and in my experience customers measure everything, as any spike in workload can be a disaster in terms of cost. Java is a brilliant addition to z/OS and I use it a lot but I'm more than aware of the caveats of writing z/OS products that require it.

WAS and Tomcat are containers for applications, using them to judge Java performance is like using a CICS address space to judge COBOL.

My Java experience has mostly been writing programs to run in batch under JZOS - I haven't touched WAS or Tomcat yet.

I concede that starting the JVM is a relatively expensive operation, so you don’t want to do it frequently for short running programs. But for larger jobs it is not so significant. Java seems to have good performance once it gets going, and the facilities it provides (Collections etc.) mean that you can often choose more efficient algorithms and e.g. eliminate sorting of input data.

Some of the Java programs I have written, with performance measurements (using the Dallas RDP system):

- A program to do gzip compression of z/OS datasets for data transfer to & from z/OS, including correct handling of variable length z/OS records. CPU usage was very similar to the Rocket gzip port (which is presumably C code). Performance was much better than TERSE. This is without zEDC. I am working to get access to zEDC which should benefit both Java and gzip, and leave TERSE even further behind.

- A program to scan SMF data for duplicate records, reporting duplicates and distinguishing between occasional duplicates, all data for a time period duplicated, or specific record types included multiple times.

In my testing this took 31 CPU seconds to scan 3.4 million records (9.4GB) and find 34,000 duplicated records.

- A program to summarize CICS transaction data, producing a CSV file with totals by applid by transaction by minute.

Reporting 12 million transactions, 6.5GB CICS compressed/42GB uncompressed took 71 CPU seconds, including uncompressing the CICS SMF data in Java.

You might say these CPU figures are high, but I think considering the work being done they are not too bad. I'm not sure they are any more than e.g. some SMP/E apply jobs. Interestingly, the CPU time on z/OS usually tracks closely with the run time on my PC.

If you are creating a whole application in Java, you probably need zIIP(s). But I would not let the lack of a zIIP stop you from using Java for utility and reporting programs. Java on z/OS is very viable for this sort of work.


--
Andrew Rowley
Black Hill Software

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to