Using the Performance profiler you can easily find the execution time of your functions and individual source lines. The profiler also tracks the hierarchy of function calls and helps you find which routines were called from other routines. These features help you find and fix performance bottlenecks quickly. This tutorial demonstrates how you can do this.
See Also
Performance Profiler - Overview
Search for Bottleneck Reasons