开发者
资源
鲲鹏性能调优分析体验之列访问循环检测优化
鲲鹏性能调优分析体验之列访问循环检测优化
发表于2023/06/27
3020

环境准备

环境亦然采用的是openeuler20.03,远程登录工具是mobaxterm,VPN下载地址:http://www.leagsoft.com/doc/article/103107.html,代码样例是在gitee上下载的,已经上传到了远程服务器上面。图一说明这三个文件是放在不同文件夹下的,但是根据样例提示这三个可以放在同一个文件夹下,那么我们将其中一个复制到另一个文件夹下。

cke_23300.png

正式实操

给程序加权限、编译程序,运行程序:

cke_26814.png

第一次打开性能分析工具,需要新建工程,我们这里选择通用场景,勾选节点即可。

cke_48829.png

我们先创建全景分析,查看下系统资源整体使用情况:

cke_14804.png

可以看到1-CPU和3-CPU使用最高,接近100%,平均CPU使用情况超过50%,给出的修改建议是打开或者关闭CPU预存开关。

cke_40292.png

我们接下来通过进程/线程分析,来查看下是哪个进程占比最高。

cke_110636.png

由于默认排序方式占比是由低到高,由于我们要查看哪个进程占比最高,需要将排序方式修改为由高到低,通过上图我们可以发现cache_miss占比最高,并且是在用户态下。在进程分析下,优化建议这个功能就比较鸡肋了,测试了几次,都无法识别到优化指标。

之后杀掉进程,创建热点函数分析,对程序进行深入的分析。

cke_1258.png

可以清楚的看到该程序的占比高达99%。

cke_2727.png

双击查看函数,查看basic block占比时钟周期数,发现某行代码占比99%。

cke_35156.png

由于本环境为虚拟机环境,所以无法创建访存分析,我们直接编译,分析下优化后的程序。创建热点函数分析,步骤同上,只不过要将最后的程序和源码路径改成cache_hit、cache_hit.c。

可以发现同样运行时间下,指令数大幅降低

cke_218395.png

查看具体的代码,与之前的做对比,会发现数量也大幅降低,说明此次优化获得了大幅的性能提升。

cke_260093.png

由于本次环境不是真实场景,所以无法体验访存分析,但是通过进程分析和热点函数分析,帮助我们优化程序缩小代码范围,提高工作效率。

收藏举报
Level 1
0
帖子
0
粉丝
0
获赞