Using Quantify power features


Quantify collects a comprehensive, accurate set of performance data for your program and every component it uses. Quantify is unique in providing data of this scope and quality. But what makes Quantify essential is its ability to help you make sense of this data. 

Right from the start, Quantify selects and organizes the most significant performance data to show you at a glance where your program spends most of its time. Quantify also provides powerful features that help you make maximum use of the performance data -- and of your time. For example, you can: 

This section gets you started using these features to profile the important parts of your code more efficiently, and to zero in on bottlenecks. 

 
Integrating Quantify with your development desktop 

Quantify’s integration—for example with Microsoft Developer Studio, Microsoft Visual Basic, Rational Visual Test®, Rational Robot, and Rational ClearQuest—puts powerful performance profiling within easy reach while you develop your code using your favorite tools. 

During installation, a Quantify menu and toolbar are automatically added to Developer Studio and Visual Basic so you can profile your code at any time during development, without leaving your development environment. 
 
click to enlarge 

If you have Visual Test or Robot installed, you can run a test script for a program and profile the program at the same time, without leaving Visual Test or Robot. With ClearQuest, you can submit a performance defect, and attach a Quantify data file (.qfy), as soon as you find slow code, without leaving Quantify. 

More information? Look up integrating in the Quantify online Help index. 

 
Controlling data recording interactively 

As your program runs, you can monitor the performance of threads and fibers and view general information about the run using the Run Summary window. 

 
click to enlarge 

You can use the data recording tools to collect data for the entire program or for just a section of it, so you get exactly the performance data you want. For example, at any time you can stop recording, clear the data collected to that point, and then resume recording. You can also take a snapshot of the current data, enabling you to examine performance in stages. 

You can also start and stop recording, clear data, and take snapshots automatically from within your program by incorporating Quantify's data recording API functions in your code. 

More information? Look up threads, recording data, and API functions in the Quantify online Help index. 


Highlighting functions that share key attributes 

You can highlight functions in the Call Graph to display specific performance characteristics or to show calling relationships. 

 
click to enlarge 

 
click to enlarge 

More information? Look up highlighting in the Quantify online Help index. 


Focusing your data 


Use Quantify's filter commands to remove a selected function, or all functions in a module, from the current dataset. Alternatively, use subtree commands to focus on or remove a specific function and all its descendants from the current dataset. Simply right-click a function in the Call Graph, Function List, or Function Detail window. 
 
click to enlarge 

Quantify has undo capabilities for all filter and subtree commands, to easily return to any previous dataset configuration. 

The Call Graph window also provides a series of expand and collapse commands that work with subtrees. Unlike the filter and subtree commands, however, these commands affect only the Call Graph display; they do not change the current dataset. 

More information? Look up filtering data and subtrees in the Quantify online Help index. 


Fine-tuning data collection 

Using the Quantify PowerTune options, you can specify how you want Quantify to measure your program's performance. Quantify's default measurement levels are based on what is appropriate in most situations, but with PowerTune you can control how specific modules are measured. 

Why is this useful? You can significantly speed up the run-time performance of your instrumented program by fine-tuning the level of instrumentation, without losing the detail you need for the critical parts of your program. 

 
click to enlarge 

Quantify measures performance at several levels of detail: 

  • Line. At this level, Quantify counts the number of times each line executes during a run, then computes performance data based on the number of cycles needed for one execution. Line level, which requires debug line information, results in the most accurate and detailed data possible, but does take the most time to collect.
  • Function. This level provides the same level of accuracy as line-level measurement, but less detail. Function level is useful when you don't need to know how individual lines perform, but still want precise, repeatable data for functions.
  • Time. Quantify collects data for timed functions by starting and stopping a timer when each function begins and ends. The data is accurate for the current run, but is influenced by microprocessor state and memory effects. The overhead for collecting timed data, however, is very low. 

More information? Look up measurement types in the Quantify online Help index. 


 

Now try out Quantify on your own code. Remember that Quantify's online Help contains detailed information to assist you. 


Back | Index | Table of contents 
 


Copyright © 1999, 2001 by Rational Software Corporation. All rights reserved.