
Will Bryant wrote:
__PPS__ wrote:
any ideas what's wrong, why clock() doesn't work anymore?
I'd hazard a guess that that's because it's measuring process CPU time rather than wall clock time. If you replace the thing you're timing with some solid computation, does clock() suddenly start giving the results you expect?
If I understand right, what you say is that these delays are due to interaction with the os and they are not counted by clock (for this process)? I didn't think about it, neither I found any info about that. My example uses sqlite to insert thousands of rows of data. (disk or ramfs access) i'm writing a simple test example... ... ok, I verified, that timings are correct when ther's no interraction with the os: #include <iostream> #include <ctime> #include <boost/progress.hpp> using namespace std; using namespace boost; int main(){ clock_t c(clock()); time_t t(time(0)); progress_timer pt; for(int i=1, z; i; ++i){ z+=i; } std::cout << "elapsed time is: " << ((double(clock())-c)/CLOCKS_PER_SEC) << "s (" << (time(0)-t) << ")\n"; } "test_clock.cpp" 18 lines, 343 characters %g++34 test_clock.cpp -o main %./main elapsed time is: 52.1641s (53) 52.16 s So, my measurements (from the original post) show time taken by my routine to execute, minus everything that's done by the OS?