File tic_toc.h#
Utility for timing execution of various scopes in a program. Timings are aggregated across all runs of each scope in an execution, and optionally printed in a table on program exit. Example usage:
void Foo() {
SYM_TIME_SCOPE("Foo");
do_stuff();
{
SYM_TIME_SCOPE("Foo::more_stuff");
do_more_stuff();
}
}
SymForce has a default implementation of this timing and aggregation mechanism; if you have some other timing system that you’d like SymForce to hook into, you can define a header to include with SYMFORCE_TIC_TOC_HEADER and provide your own definition of the SYM_TIME_SCOPE macro