老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

AIX下C/C++函數(shù)性能統(tǒng)計(jì)實(shí)現(xiàn)方法-創(chuàng)新互聯(lián)

在AIX中,xlc編譯器有個(gè)選項(xiàng)-qfunctrace,使用此選項(xiàng)編譯的程序,自動(dòng)會(huì)在每個(gè)函數(shù)的入口出口處調(diào)用以下自定義函數(shù)。

創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)南丹,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):028-86922220

extern "C" void
__func_trace_enter(const char * const proc_name,
                   const char * const file_name,
                   const int line_no,
                   void ** const id);

extern "C" void
__func_trace_exit(const char * const proc_name,
                   const char * const file_name,
                   const int line_no,
                   void ** const id);

extern "C" void
__func_trace_catch(const char * const proc_name,
                   const char * const file_name,
                   const int line_no,
                   void ** const id);

在函數(shù)調(diào)用前,執(zhí)行__func_trace_enter(),函數(shù)正常返回后,執(zhí)行__func_trace_exit()。如果函數(shù)是通過(guò)throw異常拋出的,那么在異常被catch捕獲處,執(zhí)行__func_trace_catch(),但是遇到catch(...)捕獲不會(huì)執(zhí)行。值得注意的是,如果時(shí)throw拋出,不會(huì)觸發(fā)__func_trace_exit()。

使用這個(gè)功能,可以實(shí)現(xiàn)無(wú)需修改源程序,進(jìn)行性能統(tǒng)計(jì)的效果。程序如下。

tr.cpp為自定義函數(shù)出入口程序,每個(gè)函數(shù)執(zhí)行時(shí)都會(huì)經(jīng)過(guò)。編譯成為libfunctr.so。

  • #include
  • #include
  • #include
  • #include

  • using std::vector;
  • using std::string;
  • using std::clog;
  • using std::endl;

  • extern "C" void print_trace();

  • struct Stat
  • {
  •     int lvl;
  •     string name;
  •     long stm;
  •     long etm;
  •     long oitv;
  •     Stat(int l, const string& s, long st) : lvl(l), name(s), stm(st), etm(0), oitv(0) {}
  • };

  • static vector tracev;
  • static int clvl = 0;

  • extern "C" void
  • __func_trace_enter(const char * const proc_name,
  •                    const char * const file_name,
  •                    const int line_no,
  •                    void ** const id)
  • {
  • // printf("{ %s (%s:%d) %p %s\n", proc_name, file_name, line_no, id[0], (char*)*id);
  •     struct timeval nowtm;
  •     gettimeofday(&nowtm, NULL);
  •     ++clvl;
  •     tracev.push_back(Stat(clvl, string(proc_name)+"() : "+file_name, nowtm.tv_sec * 1000000 + nowtm.tv_usec));
  • }

  • extern "C" void
  • __func_trace_exit(const char * const proc_name,
  •                   const char * const file_name,
  •                   const int line_no,
  •                   void ** const id)
  • {
  • // printf("} %s (%s:%d) %p %s\n", proc_name, file_name, line_no, id[0], (char*)*id);
  •     struct timeval nowtm;
  •     int itv;
  •     gettimeofday(&nowtm, NULL);
  •     auto iter = tracev.end() - 1;
  •     while (iter->etm != 0)
  •         --iter;
  •     iter->etm = nowtm.tv_sec * 1000000 + nowtm.tv_usec;
  •     itv = iter->etm - iter->stm - iter->oitv;
  •     for (auto s = tracev.begin(); s!=tracev.end(); s++)
  •     {
  •         if (s->etm == 0)
  •             s->oitv += itv;
  •     }
  •     --clvl;
  •     if (clvl == 0)
  •         print_trace();
  • }

  • extern "C" void print_trace()
  • {
  •     time_t t;
  •     char buf[30];
  •     for (auto s = tracev.begin(); s!=tracev.end(); s++)
  •     {
  •         clog << s->lvl << "\t";
  •         t=s->stm/1000000;
  •         strftime(buf, sizeof(buf), "%Y%m%d%H%M%S", localtime(&t));
  •         clog << buf << "." << s->stm % 1000000 << "\t";
  •         t=s->etm/1000000;
  •         strftime(buf, sizeof(buf), "%Y%m%d%H%M%S", localtime(&t));
  •         clog << buf << "." << s->etm % 1000000 << "\t";
  •         clog << s->etm-s->stm << "\t" << s->oitv << "\t" << s->etm-s->stm-s->oitv << "\t";
  •         clog << string(s->lvl-1, ' ') << s->name << endl;
  •     }
  • }

  • 網(wǎng)頁(yè)題目:AIX下C/C++函數(shù)性能統(tǒng)計(jì)實(shí)現(xiàn)方法-創(chuàng)新互聯(lián)
    網(wǎng)頁(yè)路徑:http://www.xueling.net.cn/article/dhhhsh.html

    其他資訊

    在線咨詢
    服務(wù)熱線
    服務(wù)熱線:028-86922220
    TOP
    主站蜘蛛池模板: 一级免费在线视频 | 久久久久夜夜夜 | 国产视频第一区 | 看全色黄大色大片免费无码 | 蜜桃视频免费在线观看 | 国产精品一区在线 | 久久999精品久久久有什么优势 | 日本免费一区二区三区视频 | 中国国语毛片免费观看视频 | 国产大片av | 国产一二三产区 | 极品美女扒开粉嫩小泬18P | www精品| 九色在线78m| 国产特色特黄的视频免费观看 | 99精品久久久久久久 | 玩弄放荡人妇系列AV在线网站 | 日韩精品无码专区免费视频 | 特级毛片A级毛片免费播放 WWW性久久久COM | 蜜臀色欲Av在线播放国产日韩 | 中文字幕精品无码综合网 | 日韩黄色影视 | 麻豆人妻无码性色av专区 | 综合网欧美 | 白浆在线播放 | 国产精在线 | 亚洲干综合 | 国模无码大尺度一区二区三区 | 国产av毛片 | 国产真实老熟女无套内射 | 手机看片日韩 | 亚洲精品资源在线观看 | 国产不卡a | a级毛片免费高清视频 | 五月丁香六月狠狠爱综合 | 又硬又粗进去爽a片免费 | www日本tv | 亚洲日韩中文字幕在线不卡最新 | 爱爱视频免费播放 | av免费网站 | 亚洲一区二区三区含羞草 |