top of page

the Application Profiler for z

AP4Z and Source Code Analysis

The term static analysis refers to a wide array of techniques that examine source code to collect information about software without actually running it. Static analysis can extract valuable information about what a program was designed to do, but has no clue about how that program actually behaves.

Mainframe source code analysis tools are able to discover and analyze relationships between application components, data, transactions and jobs as defined in the source code. They allow to create inventories of online and batch applications and automatically document them, they understand  use and dependencies of application component such as programs, files, relational data tables, screen maps, online transactions etc. Through static analysis it is possible to analyze application flows, it is possible to identify where files and databases are used. Having access to source code, static analysis allows to measure code complexity, perform change impact analysis, measure code quality and enforce predefined coding standards.

 

Static analysis tools allow to gain insights into data lineage. They are very powerful in support of application development, application portfolio management and application modernization, but lack any visibility about actual utilization of the code.

 

Static analysis shows all the potential relationships of an application, which sometimes are a large superset of the actual ones. Also, static analysis is performed against available source code, which may differ from what is actually in use.

 

As somebody said: "The truth only exists in the code that runs in production".

AP4Z on the other hand is a non-intrusive continuous profiler.

 

It may be used to build a composite view about the actual behavior of entire workloads. Application profiling is a dynamic code analysis technique where a program’s behavior is investigated using data collected as the program runs. For additional information see AP4Z Technical Information.

 

AP4Z measures the duration and frequency of function calls, CPU resource usage and execution time associated with specific functions. It only provides a subset of the information collected by source code analyzers, but it does it for programs which actually run in production, and adds details about their performance behavior that can only be collected at run time. AP4Z is useful to identify which application parts are actually used, and which ones may be reviewed for tuning opportunities. It helps optimize programs' execution time and ensure that they consumes minimal resources. AP4Z also helps debug performance-related issues faster making them easier to solve. For a more comprehensive discussion of how AP4Z can help see AP4Z Usage Scenarios.

 

Source code analyzers and AP4Z should be seen as complementary solutions: For example AP4Z can be used to identify most used programs. This piece of information may feed an in-depth investigation of what these programs do. Such investigation can be performed using information provided by static analysis.

 

There are few cases where both source code analyzers and AP4Z can be used, but in general they are designed to address quite different requirements. Specifically AP4Z is valuable for several interesting use cases where static analysis either struggles or can't be used at all.

The two tables below show you few examples:

 

Application Modernization, Application Portfolio Management
 

Use Case
Source Analysis Tools
AP4Z
Prepare, support and track the migration to new compilers’ versions and measure the benefits.
NO
YES
Track when programs were recompiled, using which compiler version and compiling options.
NO
YES
Generate inventories of programs related to applications subject to transformation projects.
YES Static View
YES Actual View
Detect unexpected or non compliant relationships, enforce application boundaries.
YES Static View
YES Actual View
Help understand actual relationships between different programs, applications and business areas.
NO
YES
Create lists of programs actually in use vs programs not used anymore.
YES Static View
YES Actual View

Code quality, Performance, Security
 

Use Case
Source Code Analysis Tools
AP4Z
Help speed-up Root Cause Analysis on performance slow-downs.
NO
YES
Assess module level CPU usage trends, identify which programs changed their behaviour and when.
NO
YES
Identify candidates for deep dive hotspot analysis.
NO
YES
Identify highly used and top consumer programs targeted for further analysis and optimization.
NO
YES
Detect potential security breaches: Programs which should not run, unexpected module version changes.
NO
YES
Make sure production runs pick the right module from the right library (regression avoidance).
NO
YES
Increase accuracy of Quality Assurance Test by assessing in advance what should be tested after a change.
YES Static View
YES Dynamic View
bottom of page