鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

最佳实践简介

本文档提供了如表1所示的鲲鹏DevKit命令行工具最佳实践,旨在通过这些最佳实践演示鲲鹏DevKit命令行工具各个子工具的对应功能,指导用户如何使用鲲鹏DevKit命令行工具进行项目分析,并根据该工具自动分析得出的分析报告进行修改。

表1 最佳实践简介

工具

特性

实践名称

实践简介

迁移工具

源码迁移

实践1:开源软件smartdenovo-master迁移

SmartDenovo是一个同时适用于PacBio和Nanopore测序数据的de novo组装软件,它是一款基于C语言开发的开源软件。

本实践将使用鲲鹏DevKit迁移工具对SmartDenovo源码包进行源码分析,并实现迁移目标。

软件迁移评估

实践1:扫描分析netty-all-4.1.34-Final

Netty是一个基于NIO的客户、服务器端的编程框架。

本实践将使用鲲鹏DevKit迁移工具对Netty软件包进行软件迁移评估,以实现软件迁移前期分析需求。

系统性能分析Tuner

微架构分析

实践1:微架构分析

本实践中使用鲲鹏性能定界工具KSYS快速定界问题,初步识别到微架构指标中分支预测失败指标较高存在性能瓶颈。再使用系统性能分析工具Tuner进行微架构分析,发现是条件判断语句CPU预测失败率高的性能问题,结合源码进一步发现是使用条件判断语句前数据未处理导致。通过对数据进行排序,解决源码中的CPU分支预测问题,提高分支预测成功率,提升应用性能。

热点函数分析

实践1:热点函数分析

本实践中先使用鲲鹏性能定界工具KSYS快速定界问题,初步识别到热点函数系统调用较多存在性能瓶颈。再使用系统性能分析工具Tuner的热点函数分析,通过火焰图分析调用栈发现IO系统调用占比高的问题,结合源码进一步发现是read系统调用开销大导致。通过mmap(Memory Map,内存映射文件)的手段,减少拷贝和系统调用,优化大文件读取逻辑,从而降低IO时延,优化程序性能。

访存统计分析

实践1:访存统计分析

本实践中先使用鲲鹏性能定界工具KSYS快速定界问题,初步识别到DDRC读带宽处于异常高值,存在性能瓶颈,再使用系统性能分析工具Tuner的访存统计分析、Miss事件分析,发现应用中存在缓存命中率低的性能问题,结合源码进一步发现是内存数据大量复制导致。通过块处理的方法,提高缓存命中率,优化程序性能。