<snip>
I'm doing an analysis of one of our application programs.  As part of this, I'm 
seeing the COBOL code generate a lot of PACK/UNPACK instruction pairs.  

Does anyone have an idea on the performance impact of all these (potential 
millions of executions in a single run)?
</snip>

A long time ago, on a processor far far away, I ran into this exact issue. To 
be specific, on a S370/138 I was responsible for correcting (not my code) a 
program that absolutely maxed the 370/138. Upon examining the program I found 
that all input, linkage section and working storage fields were defined in 
display format. 

The processing logic was read, process, call subprogram, process, return to 
main, clean-up, write. In essence, each numeric field used was packed/unpacked 
a minimum of 8 times. 

After modification only the working storage and linkage section variables to an 
apporpriate internal format (comp or comp-3), this same program was not noticed 
when processed. As a bonus, it ran about 20% faster that before the mods.

NOTE: I did not change one line of logic, only data descriptions. It turns out 
that there were also some logic changes that also sped up the program some 
more. ISTR that the total improvement was on the order of 40% elapsed time.

The impact of mutiple pack/unpack inctructions is significant. In the case of 
fixed point decimal operations, there are also CVD/CVB instructions associated 
with the PACK and UNPACK operations. (2X CVD/CVB for each PACK and UNPACK. As 
you can see, the amount of "useless processing" grows geometrically.

Before you change a line of code, change the data representations to the 
appropriate internal format and prepare to be astounded at the improvement.

HTH,

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to