What is Profiling

A performance profiler is a common and useful tool for a software developer.
In brief, a profiler provides a “profile” of a particular execution.
A profiler generally provides timing information and call-tree information;
with that, an engineer can analyze where their program is spending most of its
time and what part of the application is calling what other part of the application.
Functionally, the profiling software comes in two parts.: