Linux下还有个系统库函数可以精确到微秒级
#include
函数:
gettimeofday(struct time_val *tv, struct time_zone *tz);
两个结构体参数,tv得到的是时间的信息,tz得到的是时区信息
我们所需要的时间主要从tv中获取
struct time_val有两个数据,
u_int32 tv_sec;
u_int32 tv_usec;
u_int32相当于unsigned long
tv_sec是一个秒
tv_usec是一个微秒
得到的时间相当于
tv_sec.tv_usec(秒)tv_usec精确到6位数,即微秒级
所以在执行第m行后时调用gettimeofday()得到 tv1;
执行第m+2行前调用 gettimeofday()得到tv2;
然后两次相减就是时间差的
double t1 = tv1.tv_sec + tv1.tv_usec / 1000000.0
double t2 = tv2.tv_sec + tv2.tv_usec / 1000000.0
两者相差的时间就是 t2-t1 (秒为单位,后面有6位小数)
参考文章http://www.ibm.com/developerworks/cn/linux/sdk/rt/part1/index.html会有更大收获