Quantify overhead

Disk requirements

Quantify makes instrumented copies of your object files before passing them to the linker. As a time-saving measure, Quantify caches these instrumented versions of your libraries and object files. See Managing cached object files.

The amount of disk space consumed by the cache files depends on the size of the object files and libraries your program requires. Quantify typically increases the size of these files by 50 percent.

If these cached files take too much disk space, you can remove them at any time. They will be rebuilt as needed.

Swap space requirements

At build-time, Quantify requires swap space approximately equal to two to five times the size of your largest uncached object file or library.

At run time, your instrumented program requires approximately 1.5 times the swap space required by your non-instrumented program. This is due to the increased size of the instrumented code and the presence of dynamically allocated data accumulators and other data structures.

Performance

Your instrumented program typically runs two to five times slower than your non-instrumented program. How much slower depends primarily on the number of basic blocks executed by your program, and on the collection granularity of the code. The fastest instrumented code is optimized code or code that is instrumented with function granularity. Code instrumented at basic-block or line granularity is significantly slower. See Changing the granularity of collected data.

Run-time speed also depends on how large your program's virtual memory space is relative to your machine's physical memory. If your program is using a large amount of virtual memory relative to the amount of real memory, the increase in the memory requirements can cause your program to thrash, that is, to spend nearly all its time paging to disk instead of running.

If your instrumented program is more than five times slower, your program is probably thrashing. Use the vmstat command to see how much time your program is spending in kernel as compared to user mode. User mode time should typically be greater than 80 percent. If user mode drops to less than 50 percent, run your program on a machine with more real memory, try to increase the locality of your program's memory references to reduce paging, or increase the real memory of your machine.