Linux c++ 統計函數調用時間

來源:互聯網
上載者:User

標籤:linux c++ 統計函數調用時間

寫一個小程式來統計函數調用時間,簡單明了直接看代碼,有三個檔案,FunTimer.h , FunTimer.cpp ,FunTimerMan.cpp 分別如下:


FunTimer.h檔案

#ifndef _FUNTIMER_H#define _FUNTIMER_H#include <iostream>#include <sys/time.h>#include <string>using namespace std;class FunTimer{        public:                FunTimer();                FunTimer(string funName);                ~FunTimer();        private:                 string funName;                timeval  _start;               timeval  _end;};/**方法一#include <iostream>#include <ctime>#include <string>using namespace std;class FunTimer{public:FunTimer();FunTimer(string funName);~FunTimer();private:                 string funName;clock_t _start;clock_t _end;};*/#endif



FunTimer.cpp檔案

#include "FunTimer.h"FunTimer::FunTimer(){gettimeofday(&_start,NULL);}FunTimer::FunTimer(string funName){        this->funName=funName;gettimeofday(&_start,NULL);}FunTimer::~FunTimer(){        gettimeofday(&_end,NULL);float timeuse = 1000000 * (_end.tv_sec - _start.tv_sec) + (_end.tv_usec - _start.tv_usec);    timeuse /= 1000000;        cout<<endl;cout<<this->funName<<":"<<timeuse <<endl;}/**方法一FunTimer::FunTimer(){_start=clock();}FunTimer::FunTimer(string funName){this->funName=funName;        _start=clock();}FunTimer::~FunTimer(){_end=clock();cout<<this->funName<< (double)(_end - _start)/CLOCKS_PER_SEC <<endl;}*/

FunTimerMain.cpp檔案 ,用於測試

#include <iostream>#include "FunTimer.h"using namespace std;void testPrintFun(){FunTimer mFunTimer(__FUNCTION__);        for(int i=0;i<1000;i++)        {                cout<<" ";        }}void testPrintFun2(){        FunTimer mFunTimer(__FUNCTION__);        for(int i=0;i<2000;i++)        {                cout<<" ";        }}int main(int argc, char* argv[]){FunTimer mFunTimer(__FUNCTION__);testPrintFun();testPrintFun2();/**clock_t start = clock();  testPrintFun();clock_t end   = clock();  cout<<endl;    cout<<(end-start)<<endl;       */        return 0;}


測試方法:在函數的第一句加上FunTimer mFunTimer(__FUNCTION__); 即可

編譯查看結果如下:







Linux c++ 統計函數調用時間

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.