The tool gathers data at specific time intervals and plots them. A list of the readings is also maintained. The parameters captured are the number of scalars, number of arrays and total number of variables (scalars + every array element). Data can be captured periodically or after performing an action. The mode can be selected by clicking on the corresponding radio button.
To capture the sizes after specific time intervals, this mode may be used. You have to specify the interval time (in milliseconds) and then click on Start button to start acquisition. I would use this mode to casually observe the data sizes while running the program. You have to provide a sensible interval though. A small interval will accurately reflect the data sizes, but will terribly slow down a large program. A large interval, on the other hand, might miss several interesting fluctuations that you may want to observe.
Action based capture:
This mode might be used for serious debugging purposes. In an interactive program (usually with a GUI), an action from the user (like selecting a "Open New Document" option from a pull down menu) will trigger a series of operations that involve creating new global variables (like creating a new document in a MDI). Often, if one employs a pointer abstraction and have complicated data structures, unsetting the variables (like when closing the document) becomes error prone. To monitor
the sizes precisely after an action has taken place, first type in the action name in the Description field (if you already have entered, you may pick it from the list box after clicking on the down arrow). Now, perform the action (like opening a document, closing it etc.). When you feel that the action is complete, press the Sample button. This will take a reading.
Interpreting the sizes properly (I will write more on this when I get time) will tell you if there is a memory leak.
[Back to main screen]