• google-pprof


      982  2020-01-14 18:00:55 google-pprof --pdf ./demo /tmp/profile > output.pdf
      983  2020-01-14 18:02:26 g++ -o demo demo.cpp -lprofiler 
      984  2020-01-14 18:02:29 ./demo 
      985  2020-01-14 18:02:40 google-pprof --pdf ./demo /tmp/profile > output.pdf
      986  2020-01-14 19:41:14 ls
      987  2020-01-14 19:41:29 vi demo.cpp 
      988  2020-01-14 19:41:49 g++ -o demo demo.cpp -lprofiler 
      989  2020-01-14 19:42:01 ./demo 
      990  2020-01-14 19:42:09 google-pprof --pdf ./demo /tmp/profile > output.pdf
      991  2020-01-14 19:43:02 google-pprof --pdf ./demo my.prof > output.pdf
      992  2020-01-14 19:43:27 g++ -o demo demo.cpp -lprofiler 
      993  2020-01-14 19:43:30 ./demo 
      994  2020-01-14 19:43:41 google-pprof --pdf ./demo my.prof > output.pdf
      995  2020-01-14 19:44:02 history 
    //#include <google/profiler.h>
    #include <gperftools/profiler.h>
    #include <signal.h>
    #include <stdlib.h>
    #include <iostream>
    using namespace std;
    
    void signal_handler(int signo)
    {
        signal(signo, signal_handler);
        std::cout << "recv signal " << signo << std::endl;
        //switch(signo)
        //{      
          //  case SIGTERM:
                 //程序自己退出,或shell里调用kill缺省该进程。该信号可以被阻塞,或被处理
                 //可以在这里做一些程序退出前的最后处理工作
                 ProfilerStop();
                 std::cout << "Process recieve SIGTERM" << std::endl;
            //     break;      
        //}
        exit(0);
    }
    
    void func1() {
       int i = 0;
       while (i < 100000) {
           ++i;
       }  
    }
    void func2() {
       int i = 0;
       while (i < 200000) {
           ++i;
       }  
    }
    void func3() {
       for (int i = 0; i < 1000; ++i) {
           func1();
           func2();
       }  
    }
    int main(){
       signal(SIGINT, &signal_handler);
       ProfilerStart("my.prof");
         func3();
       while (1) {
         func3();
       }
       ProfilerStop();
       return 0;
    }
    demo.cpp

  • 相关阅读:
    城域波分组网的若干关键因素考虑
    浅析影响MSTP设备以太网宽带的因素
    通过网络访问adb
    ubuntu和ok6410开发板之间架设nfs
    mysql connector c++与 visual studio 2012 联合使用
    移植mysql到arm平台
    Python Numpy数组保存
    [转] 如何查看mysql的存储引擎类型
    通过session判断判断用户的操作权限
    PHP图形图像的典型应用 简单图像的应用(水印)
  • 原文地址:https://www.cnblogs.com/cjyp/p/12193778.html
Copyright © 2020-2023  润新知