• Simon Marlow's avatar
    Time handling overhaul · 6b109851
    Simon Marlow authored
    Terminology cleanup: the type "Ticks" has been renamed "Time", which
    is an StgWord64 in units of TIME_RESOLUTION (currently nanoseconds).
    The terminology "tick" is now used consistently to mean the interval
    between timer signals.
    The ticker now always ticks in realtime (actually CLOCK_MONOTONIC if
    we have it).  Before it used CPU time in the non-threaded RTS and
    realtime in the threaded RTS, but I've discovered that the CPU timer
    has terrible resolution (at least on Linux) and isn't much use for
    profiling.  So now we always use realtime.  This should also fix
    The default tick interval is now 10ms, except when profiling where we
    drop it to 1ms.  This gives more accurate profiles without affecting
    runtime too much (<1%).
    Lots of cleanups - the resolution of Time is now in one place
    only (Rts.h) rather than having calculations that depend on the
    resolution scattered all over the RTS.  I hope I found them all.
GetTime.c 4.26 KB