• gprof 分析程序执行时间和函数调用次数


    /*
     * gprof
     */
        用于分析程序的执行和确定应用程序中的"热点"在什么位置。
        应用程序的热点是程序运行时需要最多处理时间的函数。通常,它们是最为数据密集型函数,但是情况不总是如此。I/O密集型的函数也会增加处理时间。
        看gprof输出的报告,对找出程序哪里占用CPU高时很有用。

        为了对应用程序使用gprof,必须确保使用 -pg 参数编译希望监视的函数。
        用这个参数编译源代码,就会为程序中的每个函数插入对mcount子例程的调用。当应用程序运行时,mcount子例程创建一个调用图表简档文件,称为gmon.out,它包含应用程序中每个函数的计时信息。

        运行应用程序时要小心,因为每次运行都会覆盖gmon.out文件。如果希望进行多次采样,就必须在gpro的命令行中包含输出文件的名称并且在每次采样时使用不同的文件名。

        程序测试完成之后,使用gprof程序查看调用图表简档文件,分析每个函数花费的时间。

        gprof的输出包含三个报告:
        1.一般报告,它列出总执行时间和所有函数的调用次数。
        2.按照每个函数及其子函数花费的时间进行排序的函数清单。
        3.循环清单,显示循环成员和它们的调用次数。

        示例:
        gcc -pg -o demo demo.c
        ./demo

        程序结束后,在相同的目录下创建gmon.out调用图表简档文件。然后可以对demo程序运行gprof程序。

        gprof demo

        示例完毕。

  • 相关阅读:
    vue中组件传值 引用页面与组件页面绑定参数 vue省市地区街道级联选择组件
    Solidity 小白教程:12. 事件
    DM内存管理
    python-立方和不等式
    虚拟化技术和容器化技术发展由来
    3.1 机器学习 --- 决策树
    js高级属性
    深入C++纯虚函数和抽象类
    【Linux】shell脚本和bat脚本:
    Enterprise Architect安装使用
  • 原文地址:https://blog.csdn.net/xiaozhiwise/article/details/126967773