---
title: 代码样例简介
description: "本文档提供了如表1所示的鲲鹏DevKit工具样例，旨在通过这些代码样例演示鲲鹏DevKit系统性能分析的对应功能，指导用户如何使用鲲鹏DevKit工具进行项目分析，并根据该工具自动分析得出的分析报告进行修改。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevps/profiler/demo/KunpengDevKitDsug_0001.html
sourcePath: /source/zh/kunpengdevps/profiler/demo/KunpengDevKitDsug_0001.html
indexId: 2cf901afac807307bf599ef1275fa38812e3a8fa3cc4681c5eb3949d810c672e65
---
# 代码样例简介

本文档提供了如表1所示的鲲鹏DevKit工具样例，旨在通过这些代码样例演示鲲鹏DevKit系统性能分析的对应功能，指导用户如何使用鲲鹏DevKit工具进行项目分析，并根据该工具自动分析得出的分析报告进行修改。


**表1 代码样例简介**

| 工具 | 工作模式 | 场景示例 | 场景说明 | 代码样例 |
| --- | --- | --- | --- | --- |
| 系统性能分析 | CLI | 示例1：使用Roofline分析对应用调优 | 针对同一类型应用，使用鲲鹏DevKit命令行工具系统性能分析的Roofline分析任务，在多个维度进行逐级优化，便于用户理解Roofline分析任务的使用方法。 | matrix.h matrix.c matmult.h main.c intrinsic\_matmult.c block\_matmult.c base\_matmult.c |
| 系统性能分析 | WebUI | 示例1：矩阵分析 | 主要针对for循环实现一维矩阵计算的程序进行优化，通过鲲鹏DevKit系统性能分析工具热点函数性能分析功能模块中热点函数的检测，发现矩阵计算的热点函数multiply，采用NEON指令进行优化，并对比优化效果。 | multiply.c、multiply\_simd.c、multiply\_start.sh |
| 系统性能分析 | WebUI | 示例2：列访问循环检测优化 | 基于二维数组循环遍历程序，通过鲲鹏DevKit系统性能分析工具热点函数分析功能，比较按行访问与按列访问Miss事件的分析结果，以此来说明按行访问可以优化CPU Cache命中效率。 | cache\_hit.c、cache\_miss.c、miss\_start.sh、hit\_start.sh |
| 系统性能分析 | WebUI | 示例3：锁频繁抢占 | 多线程程序，经常会存在锁频繁抢占问题，锁的争抢会导致CPU的资源浪费，可以基于实际的业务减少公共资源的抢占。本示例主要针对这一问题，通过鲲鹏DevKit系统性能分析工具锁与等待分析功能来观测，建议用户分析业务逻辑减少锁的争抢，例如大锁变小锁，减少线程并发数等。 | pthread\_mutex.c、pthread\_atomic.c |
| 系统性能分析 | WebUI | 示例4：MPI应用分析 | 通过对MPI应用使用鲲鹏DevKit系统性能分析工具的HPC应用分析，让用户清晰地了解到应用在各个rank下的通信状态。 | ring.c |
| 系统性能分析 | WebUI | 示例5：MPI通信阻塞函数耗时占比分析 | 在MPI/OpenMP混合场景中，通过鲲鹏DevKit系统性能分析工具的HPC应用分析任务，让用户了解到各个场景下对应用进行调优的思路。 | send\_recv.cpp |
| 系统性能分析 | WebUI | 示例6：NUMA精细化分析 | 主要针对NUMA（Non\-uniform memory access，非统一内存访问）架构下，通过鲲鹏DevKit系统性能分析工具NUMA精细化分析的检测，采集系统中所有进程的NUMA性能，找到Top N (e.g. N = 10) NUMA性能最差的进程，各NUMA节点间内存访问统计矩阵，识别节点间内存访问不平衡状态，并得到相关优化建议。 | \- |
