Provides the Profile: macro for defining functions to profile and automatically running them when compiled with RUN_PROFILINGS defined.
Profiled code is repeated multiple times to get accurate results, AND the profiling is repeated multiple times to sum and average the results. The code is equivalent to:
for (new i = 0; i != runs; ++i)
{
start = GetTickCount();
for (new i = 0; i != repeats; ++i)
{
USER_CODE_HERE();
}
end = GetTickCount();
result[i] = end - start;
}
This execution model, and the difference between runs and repeats is important for the rest of the documnetation.
PROFILING IS HARD! Read the features for more details.
For general YSI information, see the following links:
These are links to external documentation and tutorials; both first- and third-party. Note that these may be incomplete, obsolete, or otherwise inaccurate.