Creating Indexed Source Performance Profiles


You can create a mapping of a job’s source code that correlates information in the Performance Profile to statements within the source code. The process of associating observed activity with source code statement text is called indexing.

For example, if Strobefinds that some operation invoked by the target job is a very high user of CPU resources, an indexed Performance Profile can help you determine where in the source code this high consumption is taking place.

To index a Performance Profile, you can:

  • Run the measured application using Embedded Source Support (ESS) modules, which contain both executable code as well as source listing information. ESS modules are created via the BMC Compuware Shared Services (CSS) facility for Enterprise COBOL and/or Enterprise PL/I source code. For more information on how to generate an ESS module, refer to the BMC Compuware Shared Services User/Reference.

  • Use DDIO files. DDIO is a BMC Compuware Shared Services (CSS) file that is a repository for product information. A DDIO file can be used as a database for storing compiler listings and other information. Strobe, for example can store compiler listings and reports in a DDIO file. (For more information on the types of information that can be stored in a DDIO file, refer to the BMC Compuware Shared Services User/Reference.

    31704_Tips_50x50_icon_20.png

    A compiler directive, #pragma csect, forces the IBM compiler to generate a control section with a name that you supply. If you do not specify this directive, the IBM compiler generates control sections that Strobe cannot index.

    When you have measured an application’s performance and are creating the Performance Profile, you can specify DDIO files for COBOL, PL/I, Assembler, and C program listings. These profiles will contain indexing for all matching programs. See Indexed Source Support from DDIO Files for more information.

  • Use Strobeto create a map dataset from compiler source listings. When you have measured the application’s performance and are creating the Performance Profile, specify the map dataset. See Indexing from Compiler Source Listings.

DDIO files are superior to Indexers, but are only available for some languages. In these cases, support for the Indexer has been discontinued, so the measured language will determine which indexing method you can use: map datasets or DDIO files. In addition, indexed source support will be automatic if you are using DDIO files with the iStrobe source support best practices dataset naming conventions.

Language compilers that are not supported by DDIO must use Strobeto create a map dataset for indexing Performance Profiles.

Creating DDIO Files to Use for Indexed Source Performance Profiles

If you want to use DDIO files to index Performance Profiles, you must follow the directions for adding a compiler listing from the SYSPRINT dataset to a DDIO file, using the appropriate compiler options as specified in the Compuware Shared Services User/Reference Guide, as well as the compiler options required by Strobe.

When creating DDIO listings for Strobe to use to index Enterprise PL/I programs, you must specify the compile option NOBLKOFF. In addition, the PL/I compile option STMT is recommended. When STMT is specified, the PL/I compile listing will contain statement numbers that can be matched to PL/I statement numbers in Strobe Performance Profiles. Alternatively, the CSS PL/I processor option PROCESSOR(OUTPUT(PRINT, DDIO)) may be used to create an enhanced compiler listing for Enterprise PL/I that contains both PL/I compiler-assigned line numbers and DDIO-assigned line numbers. However, when STMT is not specified, the line numbers in StrobePerformance Profiles will be the DDIO-assigned line numbers.

Indexing from Compiler Source Listings

Including indexed information from compiler source in a Performance Profile is a two-step process:

  1. Create the map dataset. To create a map dataset, you need a SYSPRINT dataset from a source code compilation or assembly listing. If you do not have one, override the SYSPRINT data definition in your compile or assembly listing procedure to create a permanent dataset. (See Specifying Datasets as Input to the Procedures.)
  2. Include map datasets when you create the Performance Profile.

The following sections explain these steps.

Step 1: Creating Map Datasets

Once you have a SYSPRINT dataset and a sample dataset that is closed, create the map dataset as follows:

  1. Select Option 5 (INDEX) from the StrobeOptions menu.
  2. Press Enter to display the Strobe- Index to Create a Map Dataset panel.
    Strobe- Index to Create a Map Dataset Panel

    image2021-2-15_19-16-50.png

  3. Specify the processing option:
    • To select background processing, type B on the OPTION line.
    • To select foreground processing, type F on the OPTION line.
  4. Specify the source code language of the program by typing Y in the appropriate Program Language field. You must run a separate index step for each source language. For language-specific rules that cover indexing, Refer to the Interpretation-and-Analysis-User-Guide.

    31704_Tips_50x50_icon_21.png

    This panel displays only those programming languages that Strobe supports at your site. The IEF option enables you to create a map dataset for programs written in CA Gen.

  5. Specify a dataset name for your map dataset, typing the name of a sequential dataset or the name of a previously allocated partitioned dataset and member name in the Output: Map Dataset field. The datasets must have DCB characteristics of RECFM=FB, LRECL=36. If the sequential dataset does not exist, it is dynamically allocated.
  6. Specify a unit name and volume serial number, typing them in the Unit and Volume fields. To use the installation defaults, clear the fields.
  7. Specify the datasets containing SYSPRINT listings, typing their names in the INPUT: Compiler SYSPRINT Datasets fields. You can specify sequential dataset names or partitioned dataset member names.
  8. Press Enter to create the map dataset.

Step 2: Including Map Datasets

After you have created a map dataset, specify that Strobeuse the indexing information when creating the Performance Profile by following these steps:

  1. Type Y in the Source Support Options field of the Strobe - Produce a Performance Profile panel.
  2. Press Enter to display the Strobe- Include Maps of Indexed Source Modules and/or DDIO Files panel.
  3. Specify the names of map datasets in the Specify names fields. (Clear the names of map datasets you do not want to use.)

31704_Tips_50x50_icon_22.png

Note the following:

  1. The Strobe- Include Maps of Indexed Source Modules and/or DDIO Files panel displays only those programming languages supported by Strobeat your site.
  2. The IEF option enables you to create a map dataset for programs written in CA Gen.

In addition to map datasets, you can also specify DDIO files to be used for indexing, as explained in the next section.

Strobe- Include Maps of Indexed Source Modules and/or DDIO Files Panel

image2021-2-15_19-18-23.png

Indexed Source Support from ESS Modules

If the measurement uses AutoProfile, then the profile is created with the source support at that time. Embedded Source Support (ESS) from the load library would match exactly, and if the DDIO was current, then it too would match exactly. If you recompile a change in the program and remeasure, ESS would then match exactly, and you would need to refresh the DDIO to get an exact match.

If you just run the measurement and do not create the profile, then that is where the source match could be an issue. The same occurs if you want to produce a profile again with an older version of a program. The ESS would now not match, and neither would the current DDIO.

When the measurement is taken, Strobedetermines if ESS was in use and saves key data. In that case, ESS is the only thing that the reporter will use. If it matches, then it uses it; if it does not match, then no source support. It does not go to DDIO.

Indexed Source Support from DDIO Files

Strobeuses the names of the files identified in the Specify names fields to determine if the files are map datasets or DDIO files.

Warning

You may need to identify the CSS load library if the CSS modules are not in the systems link list or you want to override the CSS load modules in the link list. Refer to the Installation-and-Configuration-Guide for more information about setting this parameter.

To specify DDIO files that you want to use for Performance Profile indexing:

  1. Type Y in the Source Support Options field on the Strobe- Produce a Performance Profile panel.
  2. Press Enter to display the Strobe- Include Maps of Indexed Source Modules and/or DDIO Files panel shown in.
  3. In the DDIO: section of the panel, specify the following:
    • Require date match? - Specify whether the date and time of the DDIO file must match that of its program. Default is N(o). If you require a date match, and the date of the listing does not match that of the program executable, Strobewill not index the Performance Profile.
    • Minimum program CPU to include DDIO - Specify a minimum percentage of measured CPU required for a control section for Strobeto index it. The default is 5.0%.

      Warning

      If you specify a minimum percentage less than 2.0% with large DDIO files, the time required to index the program may be lengthy.

  4. Specify the names of the DDIO files you want to use. You can also specify map dataset names, as explained in the previous section.
  5. Press Enter again to generate the Performance Profile.

Indexed Source Support for Automatic Performance Profiles

You must specify the map datasets or DDIO files to be used for indexing prior to submitting a measurement request that includes an automatically generated Performance Profile. To include map datasets or DDIO files for automatic Performance Profiles:

  1. Type Y in the Source Support Options field on the Strobe- Create an Auto Performance Profile panel.
  2. Press Enter to display the Strobe- Include Map Data Sets panel.
  3. Continue the process as described starting with Step 1: Creating Map Datasets.

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*

BMC Compuware Strobe 18.02