Guide to VAX Performance and Coverage Analyzer

*HyperReader

  CONTENTS

  Title Page

  Copyright Page

  Preface

  1      Introduction

  1.1     Overview

  1.2     The Collector

  1.3     The Analyzer

  1.4     Getting Started
    1.4.1      Using the Collector
      1.4.1.1      Invoking the Collector
      1.4.1.2      Collecting the Data
      1.4.1.3      Exiting the Collector
    1.4.2      Using the Analyzer
      1.4.2.1      Invoking the Analyzer
      1.4.2.2      Creating the Default Plot
      1.4.2.3      Scrolling Through the Display on Your Terminal
      1.4.2.4      Interpreting the Summary Page
      1.4.2.5      Viewing the Currently Active Plot
      1.4.2.6      Printing, Filing and Appending Analyzer Output
      1.4.2.7      Stopping Terminal Output or Exiting the Analyzer Session

  2      Using the Collector

  2.1     Overview

  2.2     Invoking the Collector

  2.3     Specifying the Performance Data File

  2.4     Specifying Data Collection
    2.4.1      Program Counter Sampling Data - System Time
      2.4.1.1      PC Sampling Data Distortion
      2.4.1.2      Interpreting System Service Wait Times
      2.4.1.3      Interpreting I/O Services Wait Times
      2.4.1.4      Interpreting Page-Faulting Data
      2.4.1.5      Collecting PC Sampling Data and Other Data in the Same Run
    2.4.2      Program Counter Sampling Data - CPU Time
    2.4.3      Test Coverage Data
      2.4.3.1      Codepaths
      2.4.3.2      Modules
      2.4.3.3      Routines
      2.4.3.4      Lines
      2.4.3.5      Path-Name Qualification
      2.4.3.6      Collecting Coverage Data from Multiple Test Runs
      2.4.3.7      Gathering Test Coverage Without Optimization
    2.4.4      Execution Count Data
    2.4.5      Page Fault Data
    2.4.6      System Services Data
    2.4.7      Input/Output Data
    2.4.8      Tasking Data
    2.4.9      Events Data
    2.4.10     Collecting Vector Instruction Data
      2.4.10.1     Vector Program Counter Sampling Data
      2.4.10.2     Vector CPU Time Data
      2.4.10.3     Vector Instruction Execution Count Data
    2.4.11     Collecting PC Values from the VAX Call Stack
      2.4.11.1     Collecting Stack PCs by Data Kind

  2.5     Selecting the Language of Your Application

  2.6     Naming the Collection Run

  2.7     Starting and Terminating Data Collection

  2.8     Using Collector Command Procedures

  2.9     Using Collector Logical Names

  2.10    Gathering Shareable Image Data

  3      Using the Analyzer

  3.1     Overview

  3.2     Invoking the Analyzer

  3.3     Generating Histograms and Tables
    3.3.1      Specifying the Kind of Data to Tally in the Histogram or Table
    3.3.2      Partitioning Histograms into Buckets
      3.3.2.1      Filtering Performance Data
      3.3.2.2      Specifying Modules and Routines
      3.3.2.3      Specifying Individual Buckets
      3.3.2.4      Specifying a Set of Buckets
      3.3.2.5      Specifying Lines
      3.3.2.6      Specifying Codepaths
      3.3.2.7      Specifying Bytes
      3.3.2.8      Omitting Node Specifications
    3.3.3      Using Nonaddress Domains
      3.3.3.1      File Name Domain
      3.3.3.2      File Key Domain
      3.3.3.3      File Virtual Block Number Domain
      3.3.3.4      I/O System Services Domain
      3.3.3.5      Physical Read Count Domain
      3.3.3.6      Physical Write Count Domain
      3.3.3.7      Total Physical I/O Count Domain
      3.3.3.8      Record Size Domain
      3.3.3.9      System Services Domain
      3.3.3.10     Task Domains
      3.3.3.11     Time Domain
    3.3.4      Sorting the Histogram or Table
    3.3.5      Omitting Buckets of Certain Values
    3.3.6      Showing Source Code in BY LINE and BY CODEPATH Histograms and Tables
    3.3.7      Using CALL_TREE Node Specifications
    3.3.8      Specifying Which Program Counter Values to Tally
      3.3.8.1      Performing Call Stack Analysis
      3.3.8.2      Defining the Program Unit as the Main Image
      3.3.8.3      Performing Specific Call Stack Analysis
      3.3.8.4      Tallying Program Counter Values
      3.3.8.5      Using Program Address Selection Qualifiers
    3.3.9      Filling and Scaling the Histogram
      3.3.9.1      Defining the Character String for a Histogram Bar
      3.3.9.2      Setting the Range for the Histogram Bar
    3.3.10     Performing Multitasking Analysis
    3.3.11     Interpreting TABULATE Confidence Intervals

  3.4     Creating a Multiple Data-Kind Plot
    3.4.1      Merging PCA Performance and Software Performance Monitor (SPM) Files

  3.5     Listing the Raw Performance Data

  3.6     Using Acceptable Noncoverage (ANC)

  3.7     Editing Source Code from Within the Analyzer

  3.8     Using Initialization Files and Command Procedures
    3.8.1      Using Analyzer Logical Names

  4      Productivity Enhancements with PCA

  4.1     Example 1:  Reducing Execution Time

  4.2     Example 2:  Analyzing Call Stack Data

  4.3     Example 3:  Using Multiple Data Kinds

  4.4     Example 4:  Using Event Markers for Selective Analysis

  4.5     Determining Acceptable Noncoverage (ANC)

  4.6     Example 6:  Measuring Ada Tasking Data

  4.7     Using PCA in Screen Mode
    4.7.1      Concepts and Terms
    4.7.2      Defining Windows
    4.7.3      Screen Displays
      4.7.3.1      Default Displays
      4.7.3.2      User-Defined Displays
      4.7.3.3      Pseudo-Display Names
    4.7.4      Selecting Displays for Output or Scrolling
      4.7.4.1      Viewing Displays with TYPE and SEARCH Commands
      4.7.4.2      Setting the Directory Search List
    4.7.5      Manipulating Displays
    4.7.6      Saving and Extracting Displays
    4.7.7      Keypad Key Functions
    4.7.8      Defining Keys

  5      Using PCA with DECwindows

  5.1     Obtaining Online Help

  5.2     Invoking and Using the Collector
    5.2.1      Opening the Data File
    5.2.2      Collecting Performance Data
      5.2.2.1      Collecting PC Sampling Data
      5.2.2.2      Collecting Coverage Data
    5.2.3      Starting the Collection Run
    5.2.4      Exiting the Collector

  5.3     Invoking the Analyzer
    5.3.1      Opening a Performance Data File
    5.3.2      Specifying the View in the Analyzer
    5.3.3      Obtaining a Source Code View
    5.3.4      Using Pop-Up Menus
    5.3.5      Specifying the Entries in Your View
    5.3.6      Filtering Performance Data
    5.3.7      Exiting the Analyzer

  5.4     Notes on Using the PCA DECwindows Interface

  6      Using VAX Vectors with PCA

  6.1     Analyzing the Vector Instructions in Your Program-an Overview

  6.2     Finding Where Your Application Uses Vector Processing
    6.2.1      Collecting Concurrent Scalar and Vector Sampling
    6.2.2      Gathering Scalar PC Sampling Within the Vector Instruction Emulator Only

  6.3     Counting Vector Processor Instructions

  6.4     Analyzing Vector Processor Data
    6.4.1      Finding the Most-Used Vector Instructions
    6.4.2      Finding the Locations of Vector Instructions
    6.4.3      Finding if the Vector Processor Is Optimally Used
    6.4.4      Finding How Well the Use of Vector Registers Is Distributed
    6.4.5      Vectors Special Considerations

  Command Dictionary

  @file-spec

  APPEND

  ATTACH

  BACK

  CANCEL

  CANCEL ALL

  CANCEL ANC

  CANCEL COMMAND

  CANCEL COUNTERS

  CANCEL COVERAGE

  CANCEL CPU_SAMPLING

  CANCEL DATAFILE

  CANCEL DISPLAY

  CANCEL EVENT

  CANCEL FILTER

  CANCEL IO_SERVICES

  CANCEL LOG

  CANCEL PAGE_FAULTS

  CANCEL PC_SAMPLING

  CANCEL PLOT

  CANCEL SERVICES

  CANCEL SOURCE

  CANCEL STACK_PCS

  CANCEL TASKING

  CANCEL TITLE

  CANCEL VCOUNTERS

  CANCEL VCPU_SAMPLING

  CANCEL VERIFY

  CANCEL VPC_SAMPLING

  CANCEL WINDOW

  CURRENT

  DEFINE/COMMAND

  DEFINE/KEY

  DELETE/COMMAND

  DELETE/KEY

  DISPLAY

  EDIT

  EXCLUDE

  EXIT

  EXPAND

  EXTRACT

  FILE

  FIND

  FIRST

  GO

  HELP

  INCLUDE

  LIST

  MERGE

  MOVE

  NEXT

  PAGE

  PLOT

  PRINT

  SAVE

  SCROLL

  SEARCH

  SELECT

  SET

  SET ANC

  SET COMMAND

  SET COUNTERS

  SET COVERAGE

  SET CPU_SAMPLING

  SET DATAFILE

  SET DISPLAY

  SET EDITOR

  SET EVENT

  SET FILTER

  SET IO_SERVICES

  SET KEY

  SET LANGUAGE

  SET LOG

  SET MAX_SOURCE_FILES

  SET MODE

  SET NOTE

  SET PAGE_FAULTS

  SET PC_SAMPLING

  SET PLOT

  SET PROMPT

  SET RUN_NAME

  SET SEARCH

  SET SERVICES

  SET SOURCE

  SET STACK_PCS

  SET TASKING

  SET TERMINAL

  SET TITLE

  SET VCOUNTERS

  SET VCPU_SAMPLING

  SET VERIFY

  SET VPC_SAMPLING

  SET WINDOW

  SHOW

  SHOW ALL

  SHOW ANC

  SHOW COUNTERS

  SHOW COVERAGE

  SHOW CPU_SAMPLING

  SHOW DATAFILE

  SHOW DISPLAY

  SHOW EDITOR

  SHOW EVENT

  SHOW FILTER

  SHOW IO_SERVICES

  SHOW KEY

  SHOW LANGUAGE

  SHOW LOG

  SHOW MAX_SOURCE_FILES

  SHOW MODE

  SHOW NOTE

  SHOW PAGE_FAULTS

  SHOW PC_SAMPLING

  SHOW PLOT

  SHOW RUN_DESCRIPTION

  SHOW RUN_NAME

  SHOW SEARCH

  SHOW SELECT

  SHOW SERVICES

  SHOW SOURCE

  SHOW STACK_PCS

  SHOW SYMBOL

  SHOW TASKING

  SHOW TERMINAL

  SHOW TITLE

  SHOW VCOUNTERS

  SHOW VCPU_SAMPLING

  SHOW VERIFY

  SHOW VPC_SAMPLING

  SHOW WINDOW

  SPAWN

  TABULATE

  TYPE

  UNDEFINE/COMMAND

  UNDEFINE/KEY

  A   Error Messages and Recovery Procedures

  B   Sample Programs

  C   PCA Reference Tables

  C.1     Collector Reference Tables

  C.2     Analyzer Reference Tables
    C.2.1      Analyzer Node Specification Summary

  C.3     Screen Displays

  D   Questions and Answers

  EXAMPLES

  1-1        Summary Page for a Single Data-Kind Plot

  1-2        Summary Page for a Multiple Data-Kind Plot

  3-1        Displaying PC Sampling Data in a Histogram

  3-2        Displaying PC Sampling Data in Tabular Form

  3-3        Node Specs Used to Focus on Program Elements

  3-4        BY LINE Clause Output

  3-5        Using /SOURCE with BY LINE

  3-6        Showing Noncovered Codepaths

  3-7        Indented Call Tree Plot

  3-8        Comma List Form of a Call Tree Plot

  3-9        Interpreting Confidence Intervals

  3-10       Creating a Multiple Data-Kind Plot

  3-11       Adding Data Kinds to Plots

  3-12       Excluding Data Kinds from a Plot

  6-1        Sample Output of PLOT/VCOUNTERS Command

  6-2        Displaying Vector Register Usage

  6-3        Displaying Register Usage for Individual Vector Instructions

  FIGURES

  1-1        The PCA Model

  2-1        The PCA Collector

  2-2        A Program Represented as a Tree

  3-1        A Program Represented as a Tree

  3-2        The File Name Domain

  3-3        The Record Size Domain

  3-4        System Services Domain

  5-1        PCA Collector Window

  5-2        PC Sampling Dialog Box

  5-3        Coverage Dialog Box

  5-4        PCA Analyzer Window

  5-5        Annotated Source Listing

  5-6        Traverse Commands Pop-Up Menu

  5-7        Operations Pop-Up Menu

  5-8        Bucket Definition Sample

  5-9        Filtering Performance Data

  C-1        Collector-Defined Keypad Key Functions

  C-2        Analyzer-Defined Keypad Key Functions

  C-3        PCA-Defined Keypad Key Functions for Screen Manipulation

  TABLES

  CD-1      Standard Key Names

  CD-2      Filter Restrictions on the SET FILTER Command

  C-1        RMS Services Measured by the Collector

  C-2        Non-RMS Services Measured by the Collector

  C-3        Node Specification Parameter Syntax

  C-4        Collector Logical Names

  C-5        Analyzer Logical Names

  C-6        Data-Kind Qualifiers and Supported Domains

  C-7        The SET Command with Corresponding Data-Kind Qualifiers

  C-8        Analyzer Node Specifications

  C-9        Filter Specification by Data Kind

  C-10       Default Key Bindings for Traverse Commands

  C-11       Analyzer Screen Mode Pseudo Display Names