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

操作步骤

  1. Python3执行demo。

    该接口中使用“+”在for循环中拼接字符串,该demo耗时约11s。

    图1 执行demo
  2. 进行全景分析操作。
    表1 任务配置参数说明

    参数

    说明

    分析对象

    系统

    分析类型

    全景分析

    采样类型

    系统性能、系统设置、PCIe拓扑、任务调度

    采样时长

    20秒

    采样间隔

    1秒

  3. 查看分析结果。

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

    图2 系统性能
  4. 配置Python3目录至应用程序路径配置中。

    由于Python3不在工具默认的路径中,首先配置Python3的目录到应用程序路径配置项中或将应用移至/opt或/home目录下。

    图3 系统设置
  5. 创建热点函数分析任务。
    未特别说明参数请保持默认值。
    表2 任务配置参数说明

    参数

    说明

    分析对象

    应用

    分析类型

    热点函数分析

    模式

    Launch application

    应用路径

    /usr/bin/python3

    应用参数

    /opt/testdemo/concatenate_string.py string_plus

    应用运行用户

    配置demo可运行用户的账号和密码

    采样时长 (s)

    10秒

    dwarf

    开启。

    C/C++ 源文件目录

    用于采集过程时关联源码。本示例使用/opt/testdemo/。

  6. 查看热点函数分析结果。

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

    图4 总览
  7. 性能瓶颈分析。

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