这个图看起来不是很恐怖呀,最近的一次游戏更新,造成了CPU的使用率大量飙升,有随时会崩掉的危险,还有这次更新改动的东西有点多,所以不太好排查问题,如果版本一个个的去回退,那将是一项很辛苦的工作,怎么办呢,问题又不能不处理,而且要快,不然老板又该生气了。
那就想办法呗,最好能快速的定位到哪块代码出问题了,精确到某一个函数,看看CPU占用的时间最长,
于是便网上找了找资料,他们说要用到一款工具VTune
VTune是什么呢,英特尔VTune™性能分析器,对他是一个性能分析器,
他能这样分析出每个进程的CPU占用时间,然后再能够进一步精确到哪个函数的具体调用时间,这样,你就可以知道你的代码哪个地方占用的CPU耗时最长了。
接下来,继续我们的操作,找了一圈资料下来,发现都是天下文章一大抄,自己还是一头雾水,那就直接跳到官方网站按上面的提示自己操作吧。
虽然是全英文版本的,如果你不习惯你可以网页翻译成中文来看
直接复制右侧的脚本打开SHELL窗口,直接运行就行了,
wgethttps://registrationcenter-download.intel.com/akdlm/irc_nas/18487/l_BaseKit_p_2022.1.2.146_offline.sh
sudosh./l_BaseKit_p_2022.1.2.146_offline.sh
安装过程如下
这里显示己经下载完成了
我们再执行
sh./l_BaseKit_p_2022.1.2.146_offline.sh
会进入到安装页面
我们只需要用Tab键切换选择Accept&install就可以进入安装了
最后会出现安装成功的页面
点击关闭就可以了
最后还要设置一下环境变量
我的是安装路径是:/opt/intel/oneapi/vtune/2022.0.0/bin64
打开/etc/profile在末尾添加:exportPATH=$PATH:/opt/intel/oneapi/vtune/2022.0.0/bin64
然后再刷新一下环境变量source/etc/profile
使之立即生效
按常规来说,这样就可以启动了
./vtune-gui:errorwhileloadingsharedlibraries:libatk-bridge-2.0.so.0:cannotopensharedobjectfile:Nosuchfileordirectory
执行./vtune-gui报上面的错误
查了一下是缺少依赖引用的
yuminstallat-spi2-atk
yuminstallgtk3
把这两个依赖装上去
你以为这样又可以了嘛还是不行嘛
[18610:0303/142946.181426:ERROR:browser_main_loop.cc(1409)]UnabletoopenXdisplay.
报这个错误,这个我又折腾了半个小时,发现不行只是不能用图开界面,那我换个方式嘛,用黑框框界面也可以接受
./vtune-collecthotspots-run-pass-thru=--no- altstack-target-install-dir=HOST/VTUNE/INSTALL/PATH-target-pid14352
这是我组合起来的格式命令网上找了一圈没有一个能执行的你只需要把进程pid换一下就是上面的14352换成你想collet的程序进程就好了
如果你感觉采集时间够了按CTRL+C结束就好了,他会帮你生成报告信息
Function是函数名Module是模块CPUTime是占用的时间,基本上到这里,就能解决我们所需要的问题了,可以再深入研究一下。