企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] > [参考](https://blog.csdn.net/yetyongjin/article/details/7717464) ## gprof - GNU profiler(gprof)是GNU profiler工具。它可以为Linux平台上的程序精确分析性能瓶颈,它能够记录每个函数的调用次数,每个函数消耗的处理器时间,还能够显示“调用图”,包括函数的调用关系。能够为我们改进应用程序的性能提供很多有利的帮助。 - 支持qt ## 原理 1. 程序的入口处(main函数之前)插入monstartup函数的调用代码,完成profile的初始化工作,包括分配保存信息的内存以及设置一个clock信号处理函数 2. 在每个函数的入口处插入\_mcount函数的调用代码,用于统计函数的调用信息:包括调用时间、调用次数以及调用栈信息 3. 在程序退出处(注册atexit()函数),插入\_mcleanup()函数的调用代码,负责将profile信息输出到gmon.out中。 ## 使用流程 1. 在编译和链接时,加上`-pg`选项。 2. 执行编译的二进制程序 3. 程序正常退出后,在运行目录下 生成gmon.out文件。如果原来有gmon.out 文件,将会被覆盖。 4. 用gprof工具分析gmon.out文件。 5. `gprof Binary-file gmon.out >report.txt` 对 gomon.out 文件进行分析 ## 生成图片 1. `yum install graphviz` 2. `pip install gprof2dot` 2. `python gprof2dot.py report.txt | dot -Tpng -o ast.png`