All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
timing.h File Reference

High-resolution, low-cost timing routines. More...

+ Include dependency graph for timing.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ArchIntervalTimer
 A simple timer class for measuring an interval of time using the ArchTickTimer facilities. More...
 

Functions

uint64_t ArchGetTickTime ()
 Return the current time in system-dependent units.
 
uint64_t ArchGetStartTickTime ()
 Get a "start" tick time for measuring an interval of time, followed by a later call to ArchGetStopTickTime().
 
uint64_t ArchGetStopTickTime ()
 Get a "stop" tick time for measuring an interval of time.
 
ARCH_API uint64_t ArchGetTickQuantum ()
 Return the tick time resolution.
 
ARCH_API uint64_t ArchGetIntervalTimerTickOverhead ()
 Return the ticks taken to record an interval of time with ArchIntervalTimer, as measured at startup time.
 
ARCH_API int64_t ArchTicksToNanoseconds (uint64_t nTicks)
 Convert a duration measured in "ticks", as returned by ArchGetTickTime(), to nanoseconds.
 
ARCH_API double ArchTicksToSeconds (uint64_t nTicks)
 Convert a duration measured in "ticks", as returned by ArchGetTickTime(), to seconds.
 
ARCH_API uint64_t ArchSecondsToTicks (double seconds)
 Convert a duration in seconds to "ticks", as returned by ArchGetTickTime().
 
ARCH_API double ArchGetNanosecondsPerTick ()
 Get nanoseconds per tick.
 
template<class Fn >
uint64_t ArchMeasureExecutionTime (Fn const &fn, uint64_t maxTicks=1e7, bool *reachedConsensus=nullptr)
 Run fn repeatedly attempting to determine a consensus fastest execution time with low noise, for up to maxTicks, then return the consensus fastest execution time.
 

Detailed Description

High-resolution, low-cost timing routines.

Definition in file timing.h.