首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Java架构师必看

    程序分析工具gprof介绍

    Gprof是Linux下一个强有力的程序分析工具。 用gprof分析程序 用gprof对程序进行分析主要分以下三个步骤: l         用编译器对程序进行编译,加上-pg参数。 l         运行编译后的程序。 也可以使用命令$ gprof hello | more 以上介绍了gprof最简单的使用方法,下面针对其使用过程中的三个步骤详细说明。 编译和链接 上面的例子中,程序比较简单,只有一个文件。 如果省略了“可执行文件”,gprof会在当前目录下搜索a.out文件作为可执行文件,而如果省略了gmon.out文件,gprof也会在当前目录下寻找gmon.out。 不过,gprof不能显示对象之间的继承关系,这也是它的弱点. gprof 实现原理: gprof并不神奇,在编译和链接程序的时候(使用 -pg 编 译和链接选项),gcc 在你应用程序的每个函数中都加入了一个名为

    2K20发布于 2021-03-22
  • 来自专栏方亮

    动态分析C语言代码生成函数调用关系的利器——gprof

    gprof是一个C语言程序性能分析工具。在编译期间,我们给编译指令增加-pg选项,就可以将检测代码插入到源码中。然后使用gprof启动编译程序,它会收集程序运行的流程以及其他相关数据。 gprof test-time > test-time.output 数据转换 上一步gprof采集的数据分为两部分,其中一个是调用关系(Call graph) Call graph (explanation install gprof2dot 转换为dot gprof2dot -e0 -n0 test-time.output>test-time.dot digraph { graph [fontname 参考资料 https://ftp.gnu.org/old-gnu/Manuals/gprof-2.9.1/html_mono/gprof.html https://en.wikipedia.org/wiki /Gprof

    93311编辑于 2024-03-19
  • 来自专栏全栈程序员必看

    Linux下的经常使用性能查询命令top、vmstat、gprof、pidstat之对照

    (5)gprof分析一个程序 如果程序源文件为speedup-example.cpp gcc speedup-example.cpp -o speedup-example -pg(注意-pg) 执行程序 /speedup-example,会在当前文件夹生成gmon.out,这个文件是我们查看程序执行情况的来源,接下来用gprof命令查看它: gprof -b speedup-example gmon.out

    76120编辑于 2022-07-12
  • 来自专栏云计算

    Linux性能分析工具与图形化方法

    本文介绍perf、gprof和valgrind三个性能分析工具,及其分析结果图形化的方法,旨在让大家更快的上手使用工具。 2.1 简介 gprof用于监控程序中每个方法的执行时间和被调用次数,方便找出程序中最耗时的函数。  report.txt打开如下图所示: 1520929861_43_w622_h474.png 2.3 图形化方法 gprof的结果文件需要借助gprof2dot.py和graphviz来展示 使用gprof2dot.py 生成dot文件 python gprof2dot.py report.txt >report.dot 需要说明的是,这里要求服务器已经安装了python,并且要求gprof2dot.py与安装的python 但从对性能影响上来看,gprof可以最大限制的保留原程序的性能 4.3 结果展示 gprof的结果是一颗倒树,这颗树展示了从根到叶子的所有结点的时间消耗;perf的是一个金字塔,与gprof有异曲同工之妙

    9.4K312发布于 2018-03-16
  • 来自专栏方亮

    动态分析C语言代码生成函数调用关系的利器——perf

    它并不像《动态分析C语言代码生成函数调用关系的利器——gprof》中介绍的需要在被分析程序的编译指令中插入新的选项(-pg),而是直接对原始编译结果进行分析。 preserve it in /etc/sysctl.conf (e.g. kernel.perf_event_paranoid = ) 分析 我们以《动态分析C语言代码生成函数调用关系的利器——gprof test-time-perf.output 可视化处理 环境准备 sudo apt-get install graphviz 转换成dot 然后使用《管理Python虚拟环境的脚本》中的脚本构建虚拟环境,并安装gprof2dot source env.sh init source env.sh enter source env.sh install gprof2dot 执行下面指令将文本转换成dot格式 gprof2dot test-time-perf.output https://www.kernel.org/doc/html/latest/admin-guide/perf-security.html https://github.com/jrfonseca/gprof2dot

    74310编辑于 2024-03-19
  • 来自专栏混说Linux

    【嵌入式】C语言程序调试和宏使用的技巧

    /test deng@itcast:~/tmp$ ls gmon.out test test.c deng@itcast:~/tmp$ 使用gprof剖析主程序 deng@itcast:~/tmp $ gprof test Flat profile: Each sample counts as 0.01 seconds /test deng@itcast:~/tmp$ gprof test Flat profile: Each sample counts as 0.01 seconds. /test deng@itcast:~/tmp$ gprof test Flat profile: Each sample counts as 0.01 seconds. 0.00 0.00 call_one 0.00 0.15 0.00 10 0.00 0.00 call_three 总结 在使用gprof

    1K10编辑于 2022-07-14
  • 来自专栏方亮

    IT项目研发过程中的利器——C/C++项目调用图篇

    《动态分析C语言代码生成函数调用关系的利器——perf》 gprof。《动态分析C语言代码生成函数调用关系的利器——gprof》 valgrind。 《动态执行流程分析和性能瓶颈分析的利器——gperftools的Cpu Profiler》 它们细微的区别是: gprof和gperftools需要在编译时链接分析库的代码;而perf和valgrind

    1.4K10编辑于 2024-03-19
  • 来自专栏Golang语言社区

    如何优化服务器的性能

    很强大 6、gprof 程序中每个函数的CPU使用时间。 每个函数的调用次数。并提供简单调用关系图。 ? 使用步骤: 用gcc或g++编译程序时,使用-pg参数 执行编译得到的运行程序,会产生一个gmon.out文件 使用gprof命令。查看结果信息。 (gprof -b proc_name gmon.out | less)

    2.2K60发布于 2018-03-26
  • 来自专栏sktj

    Linux调优工具oprofile安装和使用

    oprofiled仍会继续搜集并积累统计数据,之后再调用opconrol --dump就会有旧的积累数据产生.直到调用opcontrol --stop时,才会停止搜集. (3)opgprof 我们可以通过gprof ,如下: [root@compiler /]# opgprof /usr/local/nginx/sbin/nginx 不调用图像数据得出gmon.out结果 [root@compiler /]# gprof The index shows the location of the function in the gprof listing. If the index is in parenthesis it shows where it would appear in the gprof listing if it were to be

    1.4K10编辑于 2022-05-18
  • 来自专栏王纯的专栏

    Valgrind 使用入门

    工具简介: Valgrind 是一套类似于 gprof 的动态检测的工具集,由于使用方便,不需修改目标程序源码,输出清晰图文并茂等优势,常被用作后台(特别是linux后台)服务内存泄漏检测、性能打点、竞态检测等 查看结果,运行完后,将输出 callgrind.out.PID 文件,该文件可被 gprof2dot 等工具解析转化为 dot,再由 dot 转化为图片输出,也可以直接用 callgrind_annotate

    8.4K00发布于 2017-10-25
  • 来自专栏重归混沌

    一次性能优化经历

    先用GNU提供的gprof分析一下C代码是否有值得优化的地方,结果发现CPU使用率最高的地方是luaVM内部和malloc/free。 但是有个好消息,就是gprof不去profile系统调用和so,也许还有机会。 压测时,先使用top看一下每个cpu core的使用率,包括用户态与内核态。

    49310发布于 2020-04-26
  • 来自专栏郑清江的专栏

    NodeJS 性能优化之 CPU 看图篇

    ,并能够找到哪些函数是耗时较多的 JSON序列化流程相似相似,感兴趣的同学可以看一下V8的json-stringifier.cc和对应的.h文件 三、CPU性能分析的另一种可视化dot图 3.1 需要gprof2dot 脚本 工程地址:https://github.com/jrfonseca/gprof2dot.git 3.2 基于perf.data文件转换成dot文件 $ perf script -i perf.data.pid | python gprof2dot.py –f perf –e 1 –o xxx.dot 3.3 基于perf.data文件转换成dot文件 $ dot –Tsvg xxx.dot –o xxx.svg

    8.3K40发布于 2017-09-07
  • 来自专栏Golang语言社区

    如何优化服务器的性能

    很强大 6、gprof 程序中每个函数的CPU使用时间。 每个函数的调用次数。并提供简单调用关系图。 ? 使用步骤: 用gcc或g++编译程序时,使用-pg参数 执行编译得到的运行程序,会产生一个gmon.out文件 使用gprof命令。查看结果信息。 (gprof -b proc_name gmon.out | less)

    2K90发布于 2018-03-23
  • 来自专栏零域Blog

    linux进行c++开发经验总结

    linenum 打断点到文件的某一行,也可以直接打到某函数位置 n 下一步 c 继续运行,直到程序结束或者遇到断点 s 单步调试 r 重头运行程序 p 打印变量内容 help 查看命令提示 性能分析 gprof 工具 linux上分析gcc编译出来的程序的CPU时间,找出最耗时的函数 使用: gcc -pg 选项编译 运行程序,结束后生成gmon.out gprof .

    1.6K20编辑于 2022-03-08
  • 来自专栏Golang语言社区

    linux后台开发常用调试工具

    strace 跟踪程序当前的系统调用 ltrace 跟踪程序当前的库函数 time 查看程序执行时间、用户态时间、内核态时间 gprof 2、如果是用户态,则使用gprof进行性能分析。 2‘、如果是内核态,则使用strace进行性能分析,另外可以使用其他工具(比如ltrace等)辅助。 1888 664 pts/6 S+ 17:46 0:00 grep hi real 0m0.009s user 0m0.000s sys 0m0.004s 注意: time只跟踪父进程,所以不能fork gprof (显示用户态各函数执行时间) gprof原理: 在编译和链接程序的时候(使用 -pg 编译和链接选项),gcc在你应用程序的每个函数中都加入了一个名为mcount(or“_mcount”, or“__mcount 分析的数据gmon.out 3、使用gprof 程序分析应用程序生成的数据 gprof exec gmon.out > profile.txt 注意: 程序必须通过正常途径退出(exit()、main

    4.5K151发布于 2018-03-23
  • 来自专栏CV_Learn

    Linux gdb+valgrind调试

    Callgrind :生成可视化图形界面,收集程序运行时的一些数据,建立函数调用关系图,gprof2dot.py Cachegrind:分析CPU的cache命中率、丢失率,用于进行代码优化。

    4K30发布于 2020-08-04
  • 来自专栏悟空被FFmpeg玩

    定制交叉编译环境-gcc

    event_rpcgen.py  objcopy  phar        phpize   strip ar                   arm-linux-cpp        arm-linux-gprof   arm-linux-objdump  arm-linux-strip    gprof            objdump  phar.phar   ranlib arm-linux-addr2line

    2.7K50发布于 2019-03-05
  • 来自专栏xingoo, 一个梦想做发明家的程序员

    《linux c编程指南》学习手记1

    gdb(gcc debugger)gcc调试工具 其他的编译器: g++   EGCS   calls  indent  gprof  f2c和p2c

    1.9K60发布于 2018-01-17
  • 来自专栏SRS开源服务器

    比nginx-rtmp高三倍性能的SRS的高性能是个什么球?

    第二点,gperf/gprof性能benchmark功能。在编译SRS时,就可以打开gcp或者gprof的性能分析选项,灰常方便就可以拿到数据。缩短了改进和优化的开发周期。

    1K20编辑于 2022-03-18
  • C++ 如何进行性能优化?

    使用性能分析工具性能分析工具:使用性能分析工具(如 gprof、Valgrind、Intel VTune)来识别性能瓶颈,针对性地进行优化。gprof .

    60900编辑于 2025-01-27
领券