---
title: 介绍
description: "鲲鹏DevKit命令行工具是一款涵盖系统迁移、应用迁移、亲和分析、系统性能分析、Java性能分析和系统诊断的工具集，本文档介绍了鲲鹏DevKit命令行工具获取，以及对其进行安装、使用的方法，对鲲鹏DevKit命令行工具操作及其各项子功能做了详细介绍。当前支持的功能如下表。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevkithistory/devkit_24_t50/cliuserguide/KunpengDevKitCli_0001.html
sourcePath: /source/zh/kunpengdevkithistory/devkit_24_t50/cliuserguide/KunpengDevKitCli_0001.html
indexId: 4a41fc19a4cb72d5987070fa8c7e240682192f5529d716533470ed6281cc072385
---
# 介绍

#### 概述

鲲鹏DevKit命令行工具是一款涵盖系统迁移、应用迁移、亲和分析、系统性能分析、Java性能分析和系统诊断的工具集，本文档介绍了鲲鹏DevKit命令行工具获取，以及对其进行安装、使用的方法，对鲲鹏DevKit命令行工具操作及其各项子功能做了详细介绍。当前支持的功能如下表。


**表1 鲲鹏DevKit命令行工具支持功能**

| 工具 | 说明 |
| --- | --- |
| 系统迁移 | 收集应用系统中软件包、中间件、数据库等已安装软件信息。 |
| 应用迁移 | 支持x86 Linux软件迁移到鲲鹏Linux上的扫描、分析与迁移。 |
| 亲和分析 | 支持鲲鹏920平台软件代码质量检查，提升代码质量、优化访存性能。 |
| 系统性能分析 | 提供系统多场景性能采集和分析能力，并基于调优系统给出优化建议。 |
| Python/C性能分析 | 对Python程序及Python和C/C++的混合程序进行采样，分析调用栈信息。 |
| Java性能分析 | 针对运行在鲲鹏服务器的Java程序进行性能的分析和优化。 |
| 系统诊断 | 分析应用程序存在的异常问题。 |
| 自动调优 | 基于不同场景的应用性能指标进行应用配置参数的自动寻优。 |


- 系统迁移和应用迁移支持x86服务器和基于鲲鹏920的服务器。
- 亲和分析、Python/C性能分析、系统性能分析、Java性能分析、系统诊断和自动调优仅支持基于鲲鹏920的服务器。


#### 系统迁移

系统迁移支持收集应用系统中软件包、中间件、数据库等已安装软件信息。
**表2 系统迁移功能简介**

| 功能 | 说明 |
| --- | --- |
| 系统迁移应用信息收集 | 收集应用系统中软件包、中间件、数据库等已安装软件的台账和系统成分信息。 |


#### 应用迁移

应用迁移可以简化应用迁移的过程，支持将x86 Linux软件迁移到鲲鹏Linux上的扫描、分析与迁移。通过该工具能够自动分析并输出指导报告，极大提高了代码迁移效率。
**表3 应用迁移功能简介**

| 功能 | 说明 |
| --- | --- |
| 源码迁移 | 源码迁移功能分析用户C/C++/ASM/Fortran/Go/解释型语言软件的可迁移性。 |
| 软件迁移评估 | 软件迁移评估帮助用户分析用户x86环境上软件包安装路径中的SO库文件，并检查这些文件与鲲鹏平台的兼容性。 |


#### 亲和分析

亲和分析支持软件代码质量检查，提升代码质量、优化访存性能。
**表4 亲和分析功能简介**

| 功能 | 说明 |
| --- | --- |
| 64位运行模式检查 | 64位运行模式检查就是将GCC4.8.5～GCC10.3.0版本原32位的应用迁移到64位平台上，进行迁移检查并给出修改建议。 |
| 字节对齐检查 | 字节对齐检查就是在需要考虑字节对齐时，检查源码中结构体类型变量的字节对齐情况。 |
| 内存一致性检查 | 内存一致性检查就是检查源码迁移在鲲鹏平台运行时可能存在的内存一致性问题，并提供插入内存屏障的建议。 |
| 向量化检查 | 向量化检查功能用于对可向量化片段进行检查，并提供向量化修改建议。 |
| 矩阵化检查 | 矩阵化检查功能用于对可矩阵化片段进行检查，并提供矩阵化修改建议。 |
| 构建亲和 | 构建亲和功能用于分析makefile、CMakeLists.txt中可以替换鲲鹏加速库的内容，并提供替换建议和功能修复。 |
| 缓存行对齐检查 | 缓存行对齐检查是对C/C++源码中结构体变量进行128字节对齐检查，提升访存性能。 |
| BC文件生成 | BC文件用于内存一致性检查和向量化检查。 |
| 编译反馈优化 | 编译反馈优化用于帮助用户更加方便的使用编译器的AutoFDO功能，使用编译反馈优化功能进行性能提升。 |
| 数据竞争检查 | 数据竞争检查就是检查C/C++源码在鲲鹏平台运行时是否存在动态内存一致性问题（目前仅支持鲲鹏920），并提供数据竞争的检测结果与插入内存屏障的建议。 |
| 计算精度分析 | 计算精度分析工具用于定位x86和鲲鹏指令引起的Fortran语言精度差异问题。 |


#### 系统性能分析

系统性能分析是针对基于鲲鹏服务器的性能分析工具，能收集服务器的处理器硬件、操作系统、进程/线程、函数等各层次的性能数据，分析出系统性能指标，定位到系统瓶颈点及热点函数，给出优化建议。
**表5 系统性能分析功能简介**

| 功能 | 说明 |
| --- | --- |
| 微架构分析 | 基于ARM PMU（Performance Monitor Unit）事件，获得指令在CPU流水线上的运行情况，帮助用户快速定位当前应用在CPU上的性能瓶颈。用户可以有针对性地修改自己的程序，以充分利用当前的硬件资源。 |
| HPC应用分析 | 采集系统的PMU事件并配合采集面向OpenMP和MPI应用的关键指标，帮助用户精准获得Parallel region及Barrier\-to\-Barrier的串行及并行时间、校准的2层微架构指标、指令分布及L3的利用率和内存带宽等相关信息。 |
| 访存分析 | 基于CPU访问缓存和内存的PMU事件，分析存储的访问次数、命中率、带宽等相关情况。 |
| NUMA精细化分析 | 基于ARM SPE的能力分析得到系统精细化的DDR访问、 NUMA 访问流量矩阵以及进程的内存访问等相关信息。 |
| Roofline分析 | Roofline分析可帮助用户在给定硬件平台上，分析出应用程序的瓶颈点位置，从而有针对性的进行优化。 |
| 热点函数分析 | 支持分析C/C++程序代码识别性能瓶颈，给出对应的Top热点函数和调用栈详情。通过火焰图展示函数的调用关系，发现优化路径。 |
| Miss事件分析 | 利用SPE（Statistical Profiling Extension）能力对业务进行LLC Miss，TLB Miss，Remote Access，Long Latency Load等Miss类事件分析，可以有针对性地修改自己的程序，降低Miss事件发生的几率，提高程序处理性能。 |
| 热点函数分析（Python/C） | 通过ptrace对Python程序及Python和C/C++的混合程序进行采样，分析调用栈信息，获取Top20的热点函数并绘制火焰图。 |


#### Python/C性能分析


**表6 Python/C性能分析功能简介**

| 功能 | 说明 |
| --- | --- |
| 热点函数分析 | 通过ptrace对Python程序及Python和C/C++的混合程序进行采样，分析调用栈信息，获取Top20的热点函数并绘制火焰图。 |


#### Java性能分析

Java性能分析是针对基于鲲鹏的服务器上运行的Java程序的性能分析和优化工具，收集热点函数、定位程序瓶颈点，帮助用户采取针对性优化。
**表7 Java性能分析功能简介**

| 功能 | 说明 |
| --- | --- |
| 热点分析 | 采集某些时刻CPU、CYCLES、LOCK、CACHE\_MISSES、ALLOC事件的栈信息，统计当前JVM中的热点方法，以火焰图与反向火焰图的形式查询和呈现。 |


#### 系统诊断

系统诊断是针对基于鲲鹏的服务器的性能分析工具，通过分析系统运行指标，识别异常点，如内存泄漏、内存越界等。
**表8 系统诊断功能简介**

| 功能 | 说明 |
| --- | --- |
| 内存使用 | 进行内存分配、释放性能数据采集，检查应用中的内存分配未释放的情况。 |
| 内存越界 | 分析应用程序的内存越界，给出越界类型和内存访问信息。 |


#### 等保密评

等保密评是基于系统诊断工具，帮助用户分析源码文件中不符合等保密评规范的密码算法和文件中敏感信息。
**表9 等保密评功能简介**

| 功能 | 说明 |
| --- | --- |
| 非国密算法检测 | 分析源码中不符合等保密评规范的密码算法，并提供检测报告。 |
| 敏感信息扫描 | 基于内置敏感信息库和用户自定义敏感信息，分析指定目录下文件中敏感信息，并给出检测报告。 |


#### 自动调优

基于不同场景的应用性能指标进行应用配置参数的自动寻优。


**表10 自动调优功能简介**

| 功能 | 说明 |
| --- | --- |
| 生成模板文件 | 交互界面中选择应用及任务参数，生成对应的参数文件。 |
| 开启自动调优 | 根据给定参数和性能测试结果，自动调优。 |
| 运用调优结果 | 对调优结果进行运用。 |


#### 读者对象

本文档主要适用于以下人员：

- 鲲鹏平台开发者
- 鲲鹏平台的软件用户
- ISV开发者
