Comparing program runs with qxdiff

The qxdiff script compares two export data files from runs of a Quantify'd program and reports any changes in performance. To use the qxdiff script:

1.        Save baseline performance data to an export file. Select File > Export Data As in any data analysis window.

2.        Change the program and run Quantify on it again.

3.        Select File > Export Data As to export the performance data for the new run.

4.        Use the qxdiff script to compare the two export data files. For example:

     % qxdiff -i testHash.pure.20790.0.qx      improved_testHash.pure.20854.0.qx

You can use the -i option to ignore functions that make calls to system calls.

Below is the output from this example.

What qxdiff annotations mean

Each line in the qxdiff report lists a function whose time has changed. The annotations on each line mean the following:

Symbol
 

Meaning

-
 

Called in the baseline run only

!
 

Called in both runs; timing changed

+
 

Called in the changed run only

 

Unless you change the calling structure of the program, qxdiff reports only the functions whose performance has changed (lines marked “!”). You can use the -l option to print a description of the columns and annotations in the qxdiff report.

The qxdiff report summarizes the total number of differences, the change in the total function time count, and the overall percentage change between the baseline and the changed run. The qxdiff script prints the report to stdout.

By default, qxdiff reports changes in operating system call times. These changes can be caused by a different number of calls or changed network traffic loads. You can use the -i option to tell qxdiff to ignore functions that make system calls in order to focus on the changes in compute-bound functions only.

The following example shows the effect of the -i option, used here to see the effect of a different compiler optimization level on the improved_testHash program.