初探Clion+Profiler性能分析

举报
lessIsBetter 发表于 2022/08/25 14:29:55 2022/08/25
【摘要】 c++什么要做性能分析当程序运行缓慢,希望提高代码性能。有些隐蔽的改用引用的时候,用了传值,这种拼写错误,视检容易遗漏。应该优化为vector的时候,为了图方便误用成了map。多次重复计算,应有预处理计算。道理都懂,但是实践不易。性能分析可以辅助处理上述这些情况。 Clion中运行Profiler写C++,如果程序规模不是特别大到IDE卡顿,Clion还是非常好用。Clion至少在2022...

c++什么要做性能分析

  • 当程序运行缓慢,希望提高代码性能。
  • 有些隐蔽的改用引用的时候,用了传值,这种拼写错误,视检容易遗漏。
  • 应该优化为vector的时候,为了图方便误用成了map。
  • 多次重复计算,应有预处理计算。

道理都懂,但是实践不易。性能分析可以辅助处理上述这些情况。

Clion中运行Profiler

写C++,如果程序规模不是特别大到IDE卡顿,Clion还是非常好用。
Clion至少在2022的版本已经非常好地支持了Profiler。
image.png
使用流程如下:

  • 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按钮image.png
  • 点击该按钮,底边栏中找到profiler的标签卡
    image.png
  • 查看火焰图
    • 火焰图从下到上,按照调用关系,给出各个子函数子模块的运行样例数,在亲代层中的运行时间占比,在程序总时间中的占比。
    • 如果出现层级较高的长平台,一般就是有某个函数占用了大量时间,一般可以优先在这里优化性能;(错误的copy,冗余的重复计算,坏味道的数据结构,往往也都在这样的平台层会出现)。
    • 简而言之,顶部平台为重点优化模块。

优化不易,定位更难。Profiler辅助定位瓶颈,还是很好用的,有时候一个优化,就能提升几倍的性能(也是之前手残存在冗余copy)。非常推荐大家用。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。