Software Profiling

Profiling is a method by which the software execution time of each routine is determined. You can use this information to determine critical pieces of code and optimal code placement in a design. Routines that are frequently called are best suited for placement in fast memories, such as cache memory. You can also use profiling information to determine whether a piece of code can be placed in hardware, thereby improving overall performance.

Xilinx SDK supports TCF Profiling and gprof Profiling. These two ways of profiling differ significantly from each other. For gprof based profiling the hardware system should have a timer interrupt for generating periodic sampling interrupts.
Note: gprof is currently supported only for Cortex A9 & Microblaze processors.