news 2026/11/2 10:42:22

C++性能调优

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++性能调优

mkdir build && cd build
cmake -DCMAKE_CXX_COMPILER="%VCINSTALLDIR%/bin/cl.exe" -DCMAKE_CXX_INCLUDE_WHAT_YOU_USE="/mnt/include-what-you-use/build/bin/include-what-you-use" -G Ninja ..

export IWYU_BINARY=/mnt/include-what-you-use/build/bin/include-what-you-use
python3 /mnt/include-what-you-use/iwyu_tool.py -j 8 -p .> iwyu.out
python3 /mnt/include-what-you-use/fix_includes.py -b --comments --update_comments < iwyu.out


clang -pg -lstdc++ -o ./cmake/test ./cmake/cmake.cpp -lc_p
./cmake/test
gprof -b -qfunc1 fic_untilTool_test gmon.out>gmon.txt
gprof -b test gmon.out -Ffunc1 -efuncTest >gmon.txt
kprof -f ./test
gprof ./test | gprof2dot.py | xdot
-b 不显示描述
-A 显示函数源码
-pa 只打印a的flat profile,-Pa只屏蔽a
-qa 只打印a的call,-Qa只屏蔽a

sprof ./module.so Perf.profile -p >log.txt
time ./program

gcov ./summer-proj覆盖测试
gprof ./Perf | gprof2dot.py | dot -Tpng -o output.png
cd gprof2dot && cat ../bin/gmon.txt | python3 gprof2dot.py -n0 -e0 | dot -Tpdf -o output.pdf
编译开关-ftest-coverage -fprofile-arcs
改run.sh 换行类型

apt-get install ./libimagequant0_2.12.2-1.1_amd64.deb
apt-get install ./libimagequant-dev_2.12.2-1.1_amd64.deb

dpkg-deb -c quantum6.deb

泄露分析,编译链接-g
valgrind --tool=memcheck --leak-check=full --show-leak-kinds=all ./bin/Perf
valgrind --tool=callgrind ../bin/Perf
python gprof2dot.py -f callgrind -n10 -s callgrind.out.31113 | dot -Tpng -o valgrind.png

pprof安装
export CPUPROFILE_FREQUENCY=1
go install github.com/google/pprof@latest
pprof --text ./Perf test_capture.prof > profile.txt
pprof --callgrind ./Perf test_capture.prof > callgrind.res
pprof ./Perf test_capture.prof --web
pprof ./Perf test_capture.prof --pdf > prof.pdf

查看-pg是否生效
-lc_p
nm libobjectmodule.so | grep mcount
ldd ./Perf | grep libc

apt-get install libpopt-dev
apt-get install libiberty-dev
apt-get install libfdt-dev

#Recommended profilers¶
VerySleepy (Windows only)
HotSpot (Linux only)
Xcode Instruments (macOS only)


创作不易,小小的支持一下吧!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/2 10:41:37

戴森球计划蓝图全解:从手搓到全自动的 3 步捷径

戴森球计划蓝图全解&#xff1a;从手搓到全自动的 3 步捷径 【免费下载链接】XSStrike Most advanced XSS scanner. 项目地址: https://gitcode.com/gh_mirrors/xs/XSStrike 凌晨两点&#xff0c;屏幕上一排排没对齐的传送带让你直跺脚&#xff0c;三条产线挤在一起&…

作者头像 李华
网站建设 2026/11/2 10:41:21

软件工程考点之等价类设计软考边界分析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/11/2 10:40:46

可编程线性调频雷达PLFM_RADAR:从信号体制到信号处理全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/11/2 10:40:45

工业SPI链路数字隔离方案:从选型到时序预算的完整实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/11/2 10:40:45

PLFM_RADAR 线性调频脉冲雷达:FPGA 与 STM32 信号处理实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/11/2 10:40:45

MAX14431数字隔离器与PIC18F8520的工业SPI隔离方案全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华