---
title: 如何通过DevKit性能分析工具识别程序热点问题并优化代码热点提升应用性能-官方技术文章-鲲鹏社区
description: 通过系统全景分析、进程/线程性能分析以及热点函数分析功能，对业务中使用python进行字符串拼接的接口进行性能分析，并根据分析结果进行优化修改，从而实现使用python进行字符串拼接性能增强
keywords: DevKit,如何通过,性能分析工具,识别程序热点,问题并优化代,码热点提升应,用性能,官方技术文章
url: https://www.hikunpeng.com/developer/techArticles/20231206-7?envFlag=1
section: (其他)
---

# 如何通过DevKit性能分析工具识别程序热点问题并优化代码热点提升应用性能-官方技术文章-鲲鹏社区

URL: https://www.hikunpeng.com/developer/techArticles/20231206-7?envFlag=1
描述: 通过系统全景分析、进程/线程性能分析以及热点函数分析功能，对业务中使用python进行字符串拼接的接口进行性能分析，并根据分析结果进行优化修改，从而实现使用python进行字符串拼接性能增强
关键词: DevKit,如何通过,性能分析工具,识别程序热点,问题并优化代,码热点提升应,用性能,官方技术文章

官方技术文章 [了解详情](https://www.hikunpeng.com/zh/developer/techArticles)

如何通过DevKit性能分析工具识别程序热点问题并优化代码热点提升应用性能

如何通过DevKit性能分析工具识别程序热点问题并优化代码热点提升应用性能

故障案例

发表于 2023/12/06


本章将通过系统全景分析、进程/线程性能分析以及热点函数分析功能，对业务中使用python进行字符串拼接的接口进行性能分析，并根据分析结果进行优化修改，从而实现使用python进行字符串拼接性能增强。

实操过程需要使用鲲鹏平台环境，开发者请继续阅读本章节。

## 环境部署

如果开发者选择使用自备的鲲鹏平台环境完成课程学习，则需要确保平台环境与如下环境要求保持一致。

硬件要求：

| 项目 | 说明 |
| --- | ---|
| CPU | Kunpeng
920 |

操作系统要求：

| 项目 | 版本 | 下载地址 |
| --- | --- | ---|
| OpenEuler | 20.03 | https://repo.openeuler.org/openEuler-20.03-LTS-SP3/ |

软件下载地址：

| 项目 | 版本 | 下载地址 |
| --- | --- | ---|
| DevKit性能分析工具 | 23.0.T20 | https://www.hikunpeng.com/developer/devkit-new-download |

测试demo下载地址：

| 项目 | 分支 | 下载地址 |
| --- | --- | ---|
| devkitdemo | main | https://github.com/kunpengcompute/devkitdemo/archive/refs/heads/main.zip |

参照部署指导完成工具部署即可。

## 使用DevKit性能分析工具进行程序热点分析

### 1.  python3执行demo

进入“devkitdemo-main/Hyper_tuner/testdemo/Python拼接字符串的性能调优实践”目录，该目录下放置了python拼接字符串的demo，运行time python3 concatenate_string.py string_plus,该接口中使用“+”在for循环中拼接字符串，该demo耗时约11s

### 2. 进行全景分析操作

### 3. 查看分析结果

系统性能数据显示CPU负载高。

### 4. 创建进程线程分析任务

### 5. 查看进程分析结果

查看进程性能数据，CPU使用率也比其他进程高。

### 6. 创建应用的热点函数分析任务

由于python3不在工具默认的路径中，首先配置python3的目录到应用程序路径配置项中。

进行路径配置。

再次创建热点函数分析任务。

### 7. 查看热点函数分析结果

查看总览页面的Top 10热点调用栈，其中memcpy实现内存中复制，__libc_realloc即malloc函数，用来实现内存的申请及分配，它们消耗了较多的CPU资源。

### 8. 性能瓶颈分析

综合以上的分析，Python中的string是不可变对象，循环中使用+进行大量字符串拼接时，会频繁的进行内存的申请、分配以及字符串的复制，导致性能低下。

### 9. 性能瓶颈优化

将代码进行修改，使用join拼接字符串，重复以上操作步骤，查看分析结果。

注意运行参数修改为string_join。

### 10. 调优结果

系统全景分析任务显示，内存平均使用率降低，持续时间缩短。

再次使用进程线程分析，查看分析结果CPU使用率降低。

再次使用热点函数分析，查看分析结果。

应用热点函数分析任务显示，运行时长降低到之前一半，__libc_realloc不再是TOP热点函数。

### 11. 调优总结

| 字符串拼接方式 | 运行时长 |
| --- | ---|
| 使用“+”拼接 | 10.371s |
| 使用“join”拼接 | 3.475s |
