Hi Kirk,
I have had a look at the fields package, and it's on my list to compare
performance. I am mostly doing my own conversions because one of the
objectives is to allow SMF processing on other platforms i.e. Windows,
Linux if desired and I'm not sure what are the licensing implications of
a customer deploying the jzos jars to other platforms. (The focus on
Eclipse environments for development suggests it's acceptable for
development at least.) I want to remove the dependency on jzos
completely for other platforms.
It's useful to know that the JVM can do inline replacement with the
machine code. I was unsure whether that was the case or whether it was a
JNI call to external code - which would likely end up slower than
optimized java code. In any case I think these conversions are actually
a small part of the total CPU consumption and I will have trouble
measuring it.
I looked at the RecordGenerator, but I have my own process to do a
similar thing. It's actually a bit more complicated because the DSECTS
don't contain the full data type information. I am converting STCK
values to java.time.ZonedDateTime, SMF date fields to
java.time.LocalDate, CPU time to java.time.Duration etc.
At the moment I use the JZOS RecordReader and I would prefer to keep
using it rather than do my own JNI. It's useful to be able to say the
API is 100% Java.
Regards
Andrew Rowley
On 02/04/2016 08:48 AM, Kirk Wolf wrote:
I'm curious, Andrew -
Have you looked at the com.ibm.jzos.fields package for field mapping of
records?
These can be made to use fancy support in the JVM for inline JIT
replacement of primitive access with machine instructions.
There is also some tools on the JZOS developerWorks site - the JZOS
RecordGenerator. This tool will allow you to read Assembler DSECTS or
Cobol copybooks and generate Java classes that use the runtime classes from
com.ibm.jzos.fields.
See:
https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=2acdb076-7582-45b5-93a5-781f90169bd3
Regards,
Kirk Wolf
Dovetailed Technologies
http://dovetail.com
PS> The JZOS RecordReader (for eligible data sets) uses a JNI library that
uses best-practices BSAM techniques for efficiently reading sequential data
sets. The JNI interface is block-level, rather than record-level, which
helps a great deal.
The only part that you couldn't do yourself is to make the JNI library
zAPP/zIIP eligible. The JZOS JNI libraries *are* zAPP eligible, since
they are part of the IBM JRE.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN