说起析构函数,第一印象就是在析构函数里面可以做一些释放内存的操作。其实在析构函数还可以做函数耗时统计的:
class CountTime
{
public:
CountTime()
{
clock_gettime(CLOCK_REALTIME, start_tv);
}
~CountTime()
{
clock_gettime(CLOCK_REALTIME, end_tv);
unsigned long start = start_tv.tv_sec*1000000L + start_tv.tv_nsec/1000L;
unsigned long end = end_tv.tv_sec*1000000L + end_tv.tv_nsec/1000L;
cout << "耗时:" << end-start << endl;//us为单位
}
private:
struct timespec start_tv;
struct timespec end_tv;
};
void TestCountTime()
{
CountTime ct;
}
如上述实例代码所示,当函数TestCountTime开始执行时,记录下此时的时间start,当函数TestCountTime执行完时,便会调用析构函数,此时先记录下时间end,然后这两个时间相减就是TestCountTime函数的执行时间了。