本文共 968 字,大约阅读时间需要 3 分钟。
网上大部分用clock函数,在线程中计算某个函数运行时间,很不精确
#ifndef PROFILER_H#define PROFILER_H#include#include #include #include class profiler{public: profiler(const char* func_name) { gettimeofday(&tv, NULL); m_func_name = func_name; } ~profiler() { struct timeval tv2; gettimeofday(&tv2, NULL); long cost = (tv2.tv_sec - tv.tv_sec) * 1000000 + (tv2.tv_usec - tv.tv_usec); printf("[%s]cost=%d ms\n", m_func_name, cost / 1000); }private: struct timeval tv; const char * m_func_name;};#define PROFILER() profiler ____profiler_instance##__LINE__(__FUNCTION__)#endif // PROFILER_H
不精确的做法:
static clock_t m_cockStart;void closkStart(){ m_cockStart = clock();}void clockFinish(const char* msg){ clock_t finish; double total_time; finish = clock(); total_time = (double)(finish-m_cockStart) / CLOCKS_PER_SEC; printf( "%s:%f seconds\n", msg, total_time);}
转载地址:http://fzmai.baihongyu.com/