突然想到这个问题,还是来测试下:
#include <string>
#include <iostream>
#include <sys/time.h>
#include <stdio.h>
#include <stdlib.h>
#include "boost/date_time/posix_time/posix_time.hpp"
int main(int arg, char** agrv){
if (arg < 2){
printf("uasge error\n");
exit(1);
}
boost::posix_time::ptime t0 = boost::posix_time::second_clock::local_time();
size_t max = atoi(agrv[1]);
for (int i = 0; i < max-2; ++i ){
boost::posix_time::second_clock::local_time();
}
boost::posix_time::time_duration diff = boost::posix_time::second_clock::local_time() - t0;
std::cout << max << "call ptime use " << diff.total_milliseconds() << std::endl;
}
llen@allenPC:~/code/c++code$ g++ testtime.cc -o test
allen@allenPC:~/code/c++code$ ./test 1000000
1000000call ptime use 1000
allen@allenPC:~/code/c++code$ ./test 1000
1000call ptime use 0
allen@allenPC:~/code/c++code$ ./test 10000
10000call ptime use 0
allen@allenPC:~/code/c++code$ ./test 10000000
10000000call ptime use 9000
看来在linux下开销是很小的,几乎可以忽略不计.还没测试过win下.