首页 > 技术文章 > linux centos7 c++ cpu优化

chenwenjun 2020-05-10 11:59 原文

  这两天一直在搞内存泄漏,既然写了篇博客,就顺便记录下上次优化cpu的经历,相比内存泄露修改后还不确定修改是否生效还要烤机来说,cpu优化修改可谓立竿见影。

  这里就说几种常见的手法

  1.top -Hp pid && pstack

  如果某次修改后,cp异常较高,可能是代码引入了死循环,最简单的是利用上面的指令一般都能直接定位到消耗cpu高的代码块

  2.火焰图

  如果是要检测整个程序是否有可以优化cpu的地方,一般是跑个火焰图看看是哪里占用cpu比较高

  3.目前我使用的最好的检测cpu终极工具--vtune

  intel官方的检测消耗cpu的工具,官网可下载,windows版支持ssh,选择ssh挂接,会自动拷贝一个检测程序到目标服务器上,即可检测目标服务器任意程序cpu,并生成可视化报告,亲测准确度很高,详细列出了每一段代码使用cpu时间占比,实乃分析cpu之利器

  另外,cpu使用和调用次数相关,同一个函数如果在一个线程内被频繁调用可能占用较高cpu,在另一个线程偶尔调用可能并不怎么消耗cpu

推荐阅读