Use std::this_thread::sleep_untill instead of SDL_Wait
Use std::chrono::steady_clock instead of std::chrono::high_resolution_clock
Use anonymous namespace instead of static (for many functions)
Measure time at the beginning of the frame instead of at the end. So we don't use a loop dependent variable and don't use a global.
The time the destructors (inside Frame) take isn't measured anymore. Since the CProfile2Region destructor is the only non trivial destructor i don't think that's a major problem.