www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - std.perf functions unintuitive (windows version)

reply "nobody_" <spam spam.spam> writes:
timer.start() initializes a timer and saves the starting 'tick' and 
frequency.
timer.periodCount() returns ending tick - starting tick, but the ending tick 
is only initialized when timer.close() is called.
timer.stop() saves ending 'tick'

timer.second()/millisecond()/microsecond() all depend on periodCount() thus 
have no meaning untill stop() is called.

My suggestion is :
remove timer.stop()
add timer.remove(), which removes the instance of the timer (gives you back 
that few bytes used :D)
make periodCount() like this:

interval_type periodCount()
{
    QueryPerformanceCounter(&m_end);
    return m_end - m_start;
}

This way timer.second()/millisecond()/microsecond() all make meaning the 
whole time ;)
Nov 23 2006
parent "nobody_" <spam spam.spam> writes:
Keeping timer.stop() introduces a new variable ;)

interval_type periodCount()
{
    if (!stop) QueryPerformanceCounter(&m_end);
    return m_end - m_start;
} 
Nov 23 2006