HP 3000 Manuals

About Program Tuning [ HP SPT/XL User's Manual: Analysis Software ] MPE/iX 5.0 Documentation


HP SPT/XL User's Manual: Analysis Software

About Program Tuning 

Typical goals of program tuning with HP SPT/XL include:

 *  Ensuring that programs use resources efficiently.

 *  Maximizing overall transaction throughput.

 *  Optimizing user transaction response for consistency.

In addition, achieving acceptable performance always includes appropriate
hardware configuration and load-management practices.

HP SPT/XL helps you identify the areas of application code or data or
both that would most benefit from optimization tuning efforts.

Profiling a program with HP SPT/XL is an iterative process of focusing in
on where optimization efforts will give you the most payback in terms of
performance.

As figure 1-1 shows, you focus in by going from the overall program level
to a specific intrinsic within the dominant transaction.  You identify
the dominant transaction, or intrinsic, or file by looking at system
resource use.

[]
Figure 1-1. Profiling an Application Program with HP SPT/XL You can profile a program's behavior at several stages of its life cycle. During prototype development, profiling helps you verify that the program meets design goals. During development, it helps characterize the performance of added functions. In a production environment, it provides data for deciding where to assign performance-tuning effort. Whenever profiling takes place in the program's life cycle, it lets you know whether transaction performance is consistent. It also tells you if overall throughput is limited by available processing capacity, main memory capacity, disk I/O capability, or contention for software resources. Program Structure There are two layers of code in which a program can spend its time--the user's application code and the system code. A program can be coded to process many types of transactions. Application code can consist of any program files and executable libraries generated by the native language compilers available for MPE-XL--for example, COBOL II/XL, Pascal/XL, FORTRAN 77/XL, and C/XL. For programs written in interpretive languages (such as Transact/XL) the language interpreter program itself is the application layer. Similarly, system code can be made up of procedures that are directly callable by application code, as well as those that are internal to the subsystem or operating system. This might include TurboIMAGE, VPLUS, and Network Services. This code is contained in the executable libraries XL.PUB.SYS and NL.PUB.SYS.
[]
Figure 1-2. Program Structure System Code Dominant Programs. System code dominant programs spend most of their processing time--up to 99%--in system code, and the rest of the time in application code. Native mode MPE XL services make up the bulk of system code used in these programs. Much of the code used by interactive programs is associated with terminal I/O. Both interactive and batch programs use much code associated with information storage and retrieval. Most MPE-based programs are in this category because of the predominance of commercial applications in MPE environments and the common reliance on KSAM and TurboIMAGE for information management. Programs in this category can use any of the native MPE XL languages--usually COBOL and Pascal or interpretive fourth generation (4GL) languages. To tune a program in this category you must optimize the method and frequency with which the program invokes system code. Data file structure and loading characteristics must also be considered when tuning such programs. Application Code Dominant Programs. Application code dominant programs spend most of their time doing numeric computation in application code; little time is spent in system code. This category includes statistical analysis or formula-intensive programs, typically written in FORTRAN, Pascal, or C. They are the exception in MPE environments. To tune these programs you must identify the program procedures consuming the most processor resource and refine its coding algorithms. Using more efficient language syntax within program procedures is also a consideration, although this tends to be host-specific and impractical if source code portability is needed.


MPE/iX 5.0 Documentation