我要提问
ARTICLE DETAIL

资讯详情

前沿编程新知与开发实战干货的深度解读。

gprof性能分析

gprof性能分析 针对代码调优不侵入函数图表分析调用链路优化LINUX:1.Linux下cmake环境配置2.git checkout lp/gprof3.gprof使用手册GNU gprof3.启动docker环境运行build.sh4.bin目录运行./pPerf运行退出后当前目录下自动生成gmon.out5.运行gprof -b ./pixsoPerf gmon.outgmon.txt6.可视化环境配置https://www.cnblogs.com/oloroso/p/6548189.htmldocker下安装只有一次可以配置到本地或wsl7.cd gprof2dot cat ../bin/gmon.txt | python3 gprof2dot.py | dot -Tpdf -o output.pdfWINDOWS:1.安装附件verysleepy-0.91.exeqcachegrind074-32bit-x86.zip2.启动main.exe启动verysleepy左侧选中main进程点击右下角allProfile开始性能分析3.点击stop停止4.点击菜单file-》export as Callgrind5.启动qcachegrind.exe打开导出文件附一gprof2dot 命令行选项选项 含义-o FILE, --outputFILE 指定输出文件默认是标准输出(也即屏幕)还可以通过重定向来实现该选项-n PERCENTAGE, --node-thresPERCENTAGE 运行时间占比小于PERCENTAGE的节点(函数调用)不展示(默认阈值是0.5)-e PERCENTAGE, --edge-thresPERCENTAGE 作用和上面类似对边进行剪枝-f FORMAT, --formatFORMAT 性能分析日志的来源支持的来源有axe, callgrind, hprof, json, oprofile, perf, prof, pstats, sleepy, sysprof, xperf。该脚本支持多种性能分析工具默认是prof我们采用的是callgrind分析工具。–totalTOTALMETHOD 采用哪种方法统计总时间callratios 或者 callstacks(只对perf分析工具有作用)默认是callratios 。-c THEME, --colormapTHEME 颜色主题color, pink, gray, bw默认是color效果也最好。-s, --strip 不显示函数参数、模版参数、常量修饰符等对展示无影响的符号启用该选项会让生成的图片更直观易懂一般启用。-w, --wrap 当函数名过长的时候自动换行启用会让生成的图片更美观–show-samples 展示function samples-z ROOT, --rootROOT 只展示ROOT函数及其子孙调用关系忽略其他调用当函数调用关系复杂只分析某一部分函数的调用关系时非常有用。-l LEAF, --leafLEAF 只展示某个函数及其父亲调用关系忽略其他调用。–skewTHEME_SKEW 调整节点颜色的区分度。值1区分度更明显否则更不明显。建议用默认值或者1的值。示例python3 gprof2dot.py -n0 -e0附件win下搭建gprof2dot环境依赖graphvizhttps://gitlab.com/api/v4/projects/4207231/packages/generic/graphviz-releases/5.0.1/windows_10_cmake_Release_graphviz-install-5.0.1-win64.exeverysleepy.exe GitHub - VerySleepy/verysleepy: Very Sleepy, a sampling CPU profiler for Windowsqcachegrind.zip GitHub - aur-archive/qcachegrind-qt5-gitdocker下安装本地库apt-get install ./libimagequant0_2.12.2-1.1_amd64.debapt-get install ./libimagequant-dev_2.12.2-1.1_amd64.debArch Linuxyay -S intel-vtune-profiler-standalonevtune -collect hpc-performance /path/to/main其它工具参考谷歌性能分析GitHub - gperftools/gperftools: Main gperftools repositoryhttps://github.com/google/perfettohttps://github.com/pierricgimmig/orbitprofileKCachegrindgraphviz kprofinclude-what-you-useWinCacheGrindgit://git.code.sf.net/p/oprofile/oprofilehttps://quick-bench.com/q/ED4MLeeJX-gr-VfFZTz09Odzr8A C代码压测chrome://tracing/https://github.com/catapult-project/catapult chrome性能数据分析https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/edit?pli1#headingh.yr4qxyxotyw chrome性能数据格式可自定义输出到chorme显示https://www.cnblogs.com/oloroso/p/6548189.htmlIntel VTune profiler — Scipion 3.0.0 documentationGitHub - wolfpld/tracy: Frame profilerhttps://www.intel.com/content/www/us/en/developer/tools/oneapi/vtune-profiler.html创作不易小小的支持一下吧
返回列表