---
title: 性能瓶颈优化
description: "1. 修改源码文件，如图1所示，将修改后的源码文件重命名为memory_bound_after.c，并上传到“/home/demo”目录。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevps/profiler/demo/kunpengsptpypractice_memory_0003.html
sourcePath: /source/zh/kunpengdevps/profiler/demo/kunpengsptpypractice_memory_0003.html
indexId: 080273a6f9cc452d32a82ca2344786b1740672c384aa56c7af921eb4003a166e75
---
# 性能瓶颈优化

#### 操作步骤

1. 修改源码文件，如图1所示，将修改后的源码文件重命名为memory_bound_after.c，并上传到“/home/demo”目录。
  修改后的源码使用MemoryBoundBench_OPT函数，此函数选择分块优化，对j变量进行限制，将数据划分为小块，利用缓存的空间局部性和时间局部性，每次只处理一个块，使该块数据被缓存重复利用，从而减少Cache Miss现象。 图1 修改后的源码文件

2. 编译源码文件。

```
gcc -O2 -o /home/demo/ddrc_after /home/demo/memory_bound_after.c -fopenmp
```


3. 切换至KSYS工具安装目录，xxx指版本号，请根据实际情况替换。

```
cd /home/ksys-
x.x.x
-Linux-aarch64
```


4. 采集优化后的应用性能数据。

```
./ksys collect /home/demo/ddrc_after
```


  图2 访存统计数据

  在访存统计数据部分，发现DDRC读带宽数据的总值从28700MB/s+降低至790MB/s+。DDRC读带宽数据降低，说明内存中数据吞吐速率有提升，解决了CPU等待内存数据的问题，内存瓶颈问题得到优化。

5. 切换至demo目录，查看优化后应用的运行时间。

  a. 切换至demo目录。

```
cd /home/demo
```


  b. 查看优化后应用的运行时间。

```
./ddrc_after
```


    执行命令后，发现应用运行时间从6372毫秒缩短到3503毫秒，优化后的应用计算性能得到提升。

    图3 运行时间
