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:
- Quick Start - One very simple example of getting started with this library.
- Features - More features and examples.
- FAQs - Frequently Asked Questions, including errors and solutions.
- API - Full list of all functions and their meaning.
- Internal - Internal developer documentation for the system.
These are links to external documentation and tutorials; both first- and third-party. Note that these may be incomplete, obsolete, or otherwise inaccurate.