How does Quantify filter Visual Basic data?

Much of the rendering of various Visual Basic controls is performed by the Visual Basic support library (Msvbvm50.dll or Msvbvm60.dll), as well as the Common dialog (Comdlg32.ocx), common controls (Comctl32.ocx), and tab controls (Tabctl32.ocx) modules. These modules, in turn, make calls to the underlying Win32 APIs to update the windows and monitor user events.

By default, Quantify times the procedures in these object libraries, to help you track which events in your program consumed large amounts of time. However, to reduce the complexity of the initial data display in the Call Graph and Function List windows, Quantify filters out all "internal" calls to procedures in timed modules and displays only those procedures that were measured at line or function level. Because Quantify retains the time of the filtered procedures, the Annotated Source and Function Detail windows still reflect the total time consumed by the event. To display the filtered procedures, click the Filter Manager tool images\filtermng.gif and, in the Object Libraries tab, disable the filters for the appropriate modules.

If you declare an Alias for a Win32 API, the Visual Basic compiler creates an internal procedure with a generated name, such as __vba@<unique_id>. When you first call a Visual Basic Alias, the procedure calls LoadLibrary and GetProcAddress to load and remember the address of the Win32 API. Subsequent calls to the Alias call the loaded API function using the stored procedure address. By default, Quantify filters these generated procedures from the current dataset, but retains their time.

Note:

§      The Time measurement type is not supported for selective instrumentation.

(C) Copyright IBM Corporation 1993, 2009.