|
Boost : |
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.
-- Bjorn
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk