Program Profiling

Program profiling is an advanced optimization technique to reorder procedures, or code within procedures, in ILE programs and service programs based on statistical data gathered while running the program. This reordering can improve instruction cache utilization and reduce paging required by the program, thereby improving performance. The semantic behavior of the program is not affected by program profiling.

The performance improvement realized by program profiling depends on the type of application. Generally speaking, you can expect more improvement from programs that spend the majority of time in the application code itself, rather than spending time in the runtime or doing input/output processing. The performance of program code produced when applying profile data depends upon the optimizing translator correctly identifying the most important portions of the program during typical use. Therefore, it is important to gather profile data while performing the tasks that will be performed by end users, and using input data that is similar to that expected in the environment in which the program will be run.

Program profiling is available only for ILE programs and service programs that meet the following conditions:
  • The programs were created specifically for V4R2M0 or later releases.
  • If the programs were created for a release prior to V5R2M0, the program's target release must be the same as the current system's release.
  • The programs were compiled using an optimization level of *FULL (30) or above. On V5R2M0 and later systems, bound modules with less than optimization level 30 are allowed, but do not participate in application profiling.
Note: Because of the optimization requirements, you should fully debug your programs before using program profiling.