初探Clion+Profiler性能分析
【摘要】 c++什么要做性能分析当程序运行缓慢,希望提高代码性能。有些隐蔽的改用引用的时候,用了传值,这种拼写错误,视检容易遗漏。应该优化为vector的时候,为了图方便误用成了map。多次重复计算,应有预处理计算。道理都懂,但是实践不易。性能分析可以辅助处理上述这些情况。 Clion中运行Profiler写C++,如果程序规模不是特别大到IDE卡顿,Clion还是非常好用。Clion至少在2022...
c++什么要做性能分析
- 当程序运行缓慢,希望提高代码性能。
- 有些隐蔽的改用引用的时候,用了传值,这种拼写错误,视检容易遗漏。
- 应该优化为vector的时候,为了图方便误用成了map。
- 多次重复计算,应有预处理计算。
道理都懂,但是实践不易。性能分析可以辅助处理上述这些情况。
Clion中运行Profiler
写C++,如果程序规模不是特别大到IDE卡顿,Clion还是非常好用。
Clion至少在2022的版本已经非常好地支持了Profiler。
使用流程如下:
- Clion2022版
- 程序采用Remote模式在Linux服务器
- 在Linux服务器安装 sudo apt-get install linux-tools-common
- 在Clion中配置profiler,
- File
- setting
- Build, Execution, Deployment
- Dynamic Analysis Tools
- Perf
- 填写Pref executable:/usr/bin/perf(Clion2021中出现过异常没有该配置项)
- 之后即可看到上图中的profiler按钮
- 点击该按钮,底边栏中找到profiler的标签卡
- 查看火焰图
- 火焰图从下到上,按照调用关系,给出各个子函数子模块的运行样例数,在亲代层中的运行时间占比,在程序总时间中的占比。
- 如果出现层级较高的长平台,一般就是有某个函数占用了大量时间,一般可以优先在这里优化性能;(错误的copy,冗余的重复计算,坏味道的数据结构,往往也都在这样的平台层会出现)。
- 简而言之,顶部平台为重点优化模块。
优化不易,定位更难。Profiler辅助定位瓶颈,还是很好用的,有时候一个优化,就能提升几倍的性能(也是之前手残存在冗余copy)。非常推荐大家用。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)