Subject: Re: [boost] [Timer] Inconsistent behaviour
From: Bjørn Roald (bjorn_at_[hidden])
Date: 2008-10-29 15:15:07
Jordans, R. wrote:
> Hey all,
> I was looking at Boost.Timer and I noticed that it shows different results when it's used in a threaded program on Windows or Unix machines. A closer inspection revealed that it uses clock() to do it's timings.
> Digging a bit deeper I found that clock() is specified differently on Windows than it is in my Linux man-page. On windows it counts 'wall clock' time, basically what I'd expect from a class named timer but on Linux it counts CPU time. Thus it will give the result for completely different concepts of time elapsed depending on my system.
> Two questions; 1) is there a good way to solve this,
If you want a portable wall-clock timer and a simple Boost.Timer like
interface you can just copy the boost/timer.hpp header file into your
own namespace and rewrite it to use boost/date_time/posix_time stuff
instead of ::clock(). I have done that before and it was really
simple. There is a BOOST_ALL_NO_LIB macro you can define before you
include the date_time headers so you avoid creating dependencies to
anything but the header files in boost.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk