background image

        {
            struct timeval now;
            gettimeofday(&now, NULL);
                        long cost = (now.tv_sec - tm.tv_sec)*1000000 + (now.tv_usec - 
tm.tv_usec);
            singleton_t<performance_daemon_t>::instance().post(mod, cost);
        }
        const char*    mod;
        struct timeval tm;
    };
public:
    performance_daemon_t();
    ~performance_daemon_t();

    //! 启动线程,创建文件
    int start(const string& path_, int seconds_);
    //! 关闭线程
    int stop();

    //! 增加性能监控数据
    void post(const string& mod_, long us);

perf_tool_t 是工具类,构造和析构自动调用两次 gettimeofday 获取函数调用开销,例
外有辅助宏定义如下:
#define

 

AUTO_PERF()

 

performance_daemon_t::perf_tool_t 

__tmp__(__FUNCTION__)

#define PERF(m)     performance_daemon_t::perf_tool_t __tmp__(m)
使用示例:

void foo()
{
    AUTO_PERF();
    //! TODO -----
}

int main(int argc, char* argv[])
{
    
    singleton_t<performance_daemon_t>::instance().start("perf.txt", 5); 
    foo();
}

cucci

 

     女包

 

 §、

香奈儿包包

§、

爱马仕包包

§:www.naitiao.com|

冬装外套

§、

冬装女装

§、

时尚

冬装

§:www.haomeifa.com