鲲鹏DevKit简介
鲲鹏DevKit(浏览器工作模式)是一款提供涵盖应用迁移、测试、性能调优及系统诊断等各环节的开发使能工具集,方便开发者快速开发出鲲鹏亲和的高性能软件。同时,帮助开发者加速应用迁移和算力升级,面向全研发作业流程,提升应用迁移、调优效率,助力开发者高效创新。迁移、调优全程无缝衔接。
- 鲲鹏DevKit提供了C/C++/Java/Python等多种编程语言的开发环境,方便开发者根据自身需求选择合适的编程语言进行开发,同时支持Web端和IDE端。
 - 鲲鹏DevKit内置了迁移工具、性能测试工具等,方便开发者快速构建基于鲲鹏平台的高性能应用程序,并充分发挥鲲鹏平台的性能优势。
 - 鲲鹏DevKit提供了详细的文档和示例代码,帮助开发者快速入手、掌握鲲鹏平台的开发技术。
 - 鲲鹏DevKit提供了在线技术支持和社区交流平台,方便开发者在使用过程中遇到问题时及时得到解答,并与其他开发者进行交流和分享。
 
鲲鹏DevKit支持的工具如下表。
工具  | 
说明  | 
|---|---|
应用迁移工具  | 
支持x86 Linux软件迁移到鲲鹏Linux上的扫描、分析与迁移。  | 
亲和分析工具  | 
支持鲲鹏920平台软件代码质量检查,提升代码质量、优化访存性能。  | 
系统性能分析工具  | 
提供系统多场景性能采集和分析能力,并基于调优系统给出优化建议。  | 
Java性能分析工具  | 
针对运行在鲲鹏服务器的Java程序进行性能的分析和优化。  | 
系统诊断工具  | 
快速定位和诊断各部件异常,并识别源码中内存使用的问题点。  | 
应用迁移工具
鲲鹏应用迁移工具可以简化应用迁移的过程,支持将x86 Linux软件迁移到鲲鹏Linux上的扫描、分析与迁移。通过该工具能够自动分析并输出指导报告,极大提高了代码迁移效率。
鲲鹏应用迁移工具支持的功能特性如下:
功能  | 
描述  | 
|---|---|
系统迁移  | 
支持系统全栈迁移,覆盖操作系统、数据库、中间件、应用,提供迁移方案和自动化迁移能力,降低系统迁移难度,提升迁移效率。不支持x86环境。  | 
  | 
|
  | 
|
在鲲鹏平台上,分析待迁移软件包构成,重构并生成鲲鹏平台兼容的软件包,或直接提供已迁移的软件包。  | 
|
在鲲鹏平台上,对部分常用的解决方案专项软件源码,进行自动化迁移修改、编译并构建生成鲲鹏平台兼容的软件包。  | 
亲和分析工具
亲和分析支持软件代码质量检查,提升代码质量、优化访存性能,亲和分析工具仅支持基于鲲鹏920的鲲鹏平台。亲和分析工具支持的功能特性如下:
功能  | 
描述  | 
|---|---|
64位运行模式检查是将原32位平台上的软件迁移到64位平台上,进行迁移检查并给出修改建议。  | 
|
结构体字节对齐检查是在需要考虑字节对齐时,检查源码中结构体类型变量的字节对齐情况。  | 
|
缓存行对齐检查是对C/C++源码中结构体变量进行128字节对齐检查,提升访存性能。  | 
|
内存一致性静态检查  | 
内存一致性静态检查就是检查源码迁移在鲲鹏平台运行时可能存在的内存一致性问题,并提供插入内存屏障的建议。  | 
向量化检查  | 
向量化检查功能用于对可向量化源码片段进行检查,并提供向量化修改建议。  | 
矩阵化检查  | 
矩阵化检查功能用于对可矩阵化源码片段进行检查,并提供矩阵化修改建议。  | 
构建亲和  | 
构建亲和功能用于分析  | 
计算精度分析  | 
精度分析工具应用函数插桩后,分别在x86平台和鲲鹏平台运行,最终通过对比输出结果,分析平台计算精度差异。  | 
系统性能分析工具
系统性能分析是针对基于鲲鹏服务器的性能分析工具,能收集服务器的处理器硬件、操作系统、进程/线程、函数等各层次的性能数据,分析出系统性能指标,定位到系统瓶颈点及热点函数,给出优化建议。该工具可以辅助用户快速定位和处理软件性能问题,不支持x86环境。
调优助手是针对基于鲲鹏服务器的调优工具,能系统化组织性能指标,引导用户分析性能瓶颈,实现快速调优。
Java性能分析工具
Java性能分析是针对基于鲲鹏的服务器上运行的Java程序的性能分析和优化工具,能图形化显示Java程序的堆、线程、锁、垃圾回收等信息,收集热点函数、定位程序瓶颈点,帮助用户采取针对性优化。
系统诊断工具
任务分类  | 
描述  | 
|---|---|
内存使用诊断  | 
分析应用程序存在的内存使用问题,包括内存未释放和异常释放,并支持关联出调用栈信息和源码。  | 
内存越界诊断  | 
分析应用程序的内存越界,给出越界类型和内存访问信息,并支持关联出调用栈和源码。  | 
网络IO诊断  | 
压测网络,获得网络最大能力,为网络IO性能优化提供基础参考数据;诊断网络,定位网络疑难问题,解决因网络配置和异常而导致的网络IO性能问题。具体包括:网络拨测、丢包诊断(  | 
存储IO诊断  | 
压测存储IO,获得存储设备最大能力,为存储IO性能优化提供基础参考数据。支持存储IO压测,获得存储IO最大能力,包括:吞吐量、IOPS、时延。  | 
相关概念
概念词  | 
说明  | 
|---|---|
SO依赖库  | 
Linux中的SO(Shared Object)文件,其名称类似“libname.so.1.1.1”。  | 
依赖字典  | 
|
软件构建工程文件  | 
C/C++/ASM/Fortran/Go常用的软件构建工具Make和CMake对应的构建文件是Makefile和CMakeLists.txt。  | 
IPC  | 
|
它基于事件采样原理,以性能事件为基础,支持针对处理器相关性能指标与操作系统相关性能指标的性能剖析。常用于性能瓶颈的查找与热点代码的定位。 CPU周期(CPU Cycles)是默认的性能事件,也叫做clock tick。根据tick  | 
|
USE  | 
  | 
在线分析  | 
在线分析是一种应用程序动态分析方法,包含对于目标JVM和Java程序的双重分析。它用于分析应用程序在运行时刻,资源消耗在内部的分布、方法调用频度与耗时。该方法常用于辅助应用的性能瓶颈定位和性能调优。 在线分析通过Instrument程序的类和方法,来计算特定代码所有的方法调用情况,可能对性能造成比较大的影响。  | 
采样分析  | 
通过采样的方式,收集JVM的内部活动/性能事件,以录制及回放的方式进行离线分析。采样分析不需要修改应用程序的代码,对性能影响较小,适用于大型的Java程序。因为通过定期采集数据的方式,精确度相对在线分析较低。  | 
上层应用Workload  | 
Workload分析主要指通过动态修改上层应用代码并埋下hook来收集特定的应用相关性能数据,通过Workload分析,可以收集并定位用户关心的特定代码的工作性能。  |