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

正式实操
给程序加权限、编译程序,运行程序:

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

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

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

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

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

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

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

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

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

由于本次环境不是真实场景,所以无法体验访存分析,但是通过进程分析和热点函数分析,帮助我们优化程序缩小代码范围,提高工作效率。
环境准备
环境亦然采用的是openeuler20.03,远程登录工具是mobaxterm,VPN下载地址:http://www.leagsoft.com/doc/article/103107.html,代码样例是在gitee上下载的,已经上传到了远程服务器上面。图一说明这三个文件是放在不同文件夹下的,但是根据样例提示这三个可以放在同一个文件夹下,那么我们将其中一个复制到另一个文件夹下。
正式实操
给程序加权限、编译程序,运行程序:
第一次打开性能分析工具,需要新建工程,我们这里选择通用场景,勾选节点即可。
我们先创建全景分析,查看下系统资源整体使用情况:
可以看到1-CPU和3-CPU使用最高,接近100%,平均CPU使用情况超过50%,给出的修改建议是打开或者关闭CPU预存开关。
我们接下来通过进程/线程分析,来查看下是哪个进程占比最高。
由于默认排序方式占比是由低到高,由于我们要查看哪个进程占比最高,需要将排序方式修改为由高到低,通过上图我们可以发现cache_miss占比最高,并且是在用户态下。在进程分析下,优化建议这个功能就比较鸡肋了,测试了几次,都无法识别到优化指标。
之后杀掉进程,创建热点函数分析,对程序进行深入的分析。
可以清楚的看到该程序的占比高达99%。
双击查看函数,查看basic block占比时钟周期数,发现某行代码占比99%。
由于本环境为虚拟机环境,所以无法创建访存分析,我们直接编译,分析下优化后的程序。创建热点函数分析,步骤同上,只不过要将最后的程序和源码路径改成cache_hit、cache_hit.c。
可以发现同样运行时间下,指令数大幅降低
查看具体的代码,与之前的做对比,会发现数量也大幅降低,说明此次优化获得了大幅的性能提升。
由于本次环境不是真实场景,所以无法体验访存分析,但是通过进程分析和热点函数分析,帮助我们优化程序缩小代码范围,提高工作效率。