鲲鹏devkit性能分析工具介绍(二)

news2025/2/25 5:53:20

鲲鹏devkit性能分析工具介绍(二)

上一篇笔记录性能分析工具的全景分析模式的基本原理和重点参数的解读,在这片文章里将会讲解其他的分析功能特点和重点参数
在这里插入图片描述

进程/线程性能分析

进程/线程性能分析借鉴业界的USE方法,采集进程/线程对CPU、GPU、内存、存储IO等资源的消耗情况,获得对应的使用率、饱和度、错误次数等指标,以此识别性能瓶颈。针对部分指标项,根据当前已有的基准值和优化经验提供优化建议。支持分析单个进程的系统调用情况。

在这里插入图片描述

进程/线程性能分析原理

通过采集应用的资源信息从使用率、利用率、饱和度等多个维度进行分析
在这里插入图片描述
在这里插入图片描述
在分析报告中可以看到进程在用户空间的CPU占比,通常来说过同一个进程在两个核上进行CPU占比不平均这里就充分说明了应用还留有调优的空间,我们正是利用性能分析工具这些数据去进行分析判断最后来选择性能调优的手段

重点指标分析解读

上下文切换区域参数说明:
PID/TID

显示进程ID/线程ID。

cswch/s

每秒主动任务上下文切换次数,通常指任务无法获取所需资源,导致的上下文切换。例如I/O、内存等系统资源不足时,就会发生主动任务上下文切换。

nvcswch/s

每秒被动任务上下文切换次数,通常任务由于时间片已到、被高优先级进程抢占等原因,被系统强制调度,进而发生的上下文切换。例如大量进程都在争抢CPU时,就容易发生被动任务上下文切换。

Command

当前进程对应的命令名称。

系统调用区参数说明:

%time

系统CPU时间花在哪里的百分比。

seconds/s

总的系统CPU时间(以秒为单位)。

usecs/call(ms)

每次调用的平均系统CPU时间(以毫秒为单位)。

calls

整个采集过程中的系统调用次数。

errors

整个采集过程中的系统调用失败次数。

syscall

系统调用的名字。
在这里插入图片描述
性能影响:
1、在切换次数较多的情况下,很容易导致CPU将大量时间耗费在寄存器内核栈以及虚拟内存等资源的保存和恢复上,进而大大缩短了正运行进程的时间。
2、切换后虚拟内存更新,TLB也需刷网新。内在的访问会随之变慢。多处理器系统上,缓存是被多个处理器共享的,所以还会影响共享缓存的其他处理器的进程。减少不必要的系统调用、中断,可以有效的降低进程上下文切换。提高进程性能。

热点函数分析

支持分析C/C++程序代码识别性能瓶颈,给出对应的热点函数以及源码和汇编指令的关联详情。通过冷/热火焰图展示函数的调用关系,发现优化路径。

麒麟V10(Tercel)暂不支持Launch Application模式的应用采集;UOS暂不支持分析模式选择“应用”。

在这里插入图片描述
在这里插入图片描述
对于c/c++应用进行热点函数分析可以对其源码进行分析,通过应用执行过程分析出过程中那些函数为频繁调用的热点函数,这些热点函数往往就算我们进行性能调优的关键函数

热点函数分析举例

在视频教程中举例分析了一个矩阵计算函数为热带你函数,在点函数TOP10的排行榜中点击热点函数可以直接查看热点函数的代码块,方便进行修改
在这里插入图片描述
经过修改的热点函数目的是为了大大降低其频繁的调用次数,可以有效提高整体的性能
这里只能是c/c++应用才可以进行分析

微架构分析

什么是微架构?
微架构又称为微体系结构/微处理器体系结构。是在计算机工程中,将一种给定的 指令集架构在处理器中执行的方法。一种给定指令集可以在不同的微架构中执行。实施中可能因应不同的设计目的和技术提升而有所不同。计算机架构是微架构和指令集设计的结合。
微架构分析作用
微架构分析基于ARM PMU(Performance Monitor Unit)事件,获得指令在CPU流水线上的运行情况,帮助用户快速定位当前应用在CPU上的性能瓶颈。用户可以有针对性地修改自己的程序,以充分利用当前的硬件资源。当前微架构任务只支持物理机场景,创建工程时选择物理机节点。
在这里插入图片描述
微架构分析支持四个维度(进程、线程、模块、CPU)展示,同时还会给出优化建议,通过对调用信息,等多维度的分析帮助开发者选择调优方向

微架构分析原理

一条指令在流水线上运行时,需要经过取指译码执行回写等多个阶段,处理器在每个阶段都设定了一些PMU统计事件,通过采集这些事件,并结合一定模型,就可以表示出指令在CPU流水线上的运行情况。
在这里插入图片描述
在这里插入图片描述

微架构分析举例

在视频教程中给出了一个数组排序的例子,我们可以通过这个例子进行分析一下
在这里插入图片描述
使用上面的程序累计执行耗时31.16s,在进行微架构分析时显示出了for循环中的if判断存在着大量的分支预制失败

而下面的程序采取的是根据架构分析选择的是对数据进行先排序,CPU基于之前走的分支对if分支进行预测的准确度将大大提升

这里也可以看到程序的运行效率提高,耗时也是降到了原来的三分之一只用了10.99s

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/45202.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Kubernetes之Pod初始化容器

Kubernetes之Pod初始化容器 概述 ​ 初始化是很多编程语言普遍关注的问题,甚至有些编程语言直接支持模式构造来生成初始化程序,这些用于进行初始化的程序结构称为初始化器或初始化列表。初始化代码要首先运行,且只能运行一次,它们…

Java.Integer.bitCount(int)源码解析

bitCount前言一、由易到难,头脑热身二、简单优化,一题多解三、分治优化四、bitCount(int)源码优化总结参考文献前言 如何求解一个二进制中1的个数?有常规的O(N)法,还有基于分治的O(logN),即Java的bitCount(int)方法。…

CockroachDB-备份与恢复(1)备份架构

本文知识点来源于官网地址https://www.cockroachlabs.com/docs/stable/backup-architecture.html CockachDB备份以作业的方式操作,作业是可能跨越多个SQL会话的长期运行操作。与常规SQL语句不同,BACKUP语句在作业工作流中执行。备份任务有四个主要阶段:…

CDMP考试时间与报名方式

CDMP“数据管理专业人士认证”证书国际通用,行业认可度极高,是一项涵盖学历教育、工作经验和专业知识考试在内的综合资格认证,也是 目前全球唯一数据管理方面权威性认证 。CDMP考试时间是什么时候?怎样报名?今天小编来…

C语言 =(按位与后赋值)^=(按位异或后赋值) |=(按位或后赋值)

&(按位与后赋值) x 0x02; x & 0x01; 按位与后的结果为:0x00 x 0x02; x & 0x01; 字符 & 的最早历史可以追溯到公元1世纪,最早是拉丁语et (意为and)的连写。最早的 & 很像 E 和 T 的组合,随着印刷技术的发展&…

[附源码]计算机毕业设计springboot付费自习室管理小程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

[附源码]Python计算机毕业设计Django宠物领养与物品捐赠小程序

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

文件上传漏洞详解

文件上传漏洞详解1.文件上传漏洞1.1.文件上传漏洞定义1.2.文件上传漏洞原理1.3.文件上传思路1.3.1.常规类1.3.2.cms类1.3.3.编辑类1.3.4.其他类/CVE1.4.web界面存在的风险点1.5.文件上传实战思路2.文件上传绕过分类2.1.JS类防护2.1.1.前端验证  2.1.1.1.基本概念  2.1.1.2.…

普元中间件Primeton AppServer6.5部署SuperMap iServer

本文使用Windows环境普元中间件Primeton AppServer6.5(以下简称PAS)部署SuperMap iServer 一、部署前准备 本文使用SuperMap iServer 11.0.1(10.2.1版本同理可以使用) supermap-iserver-11.0.1-war.zip 安装完成的普元中间件PAS…

EEMD分解如何对IMF分量进行显著性检验?

EEMD简介 集合经验模态分解 (EEMD)方法是一种时间上局部的自适应时间序列分析技术, 适合于分析非线性、非平稳的时间序列. EEMD 方法改进了经验模态分解 (EMD)的 模态混叠问题 。EEMD 方法是利用多次测量取平均值的原理,通过在原数据中加入适当大小的白噪音来模拟多次观测的情…

【服务器数据恢复】hp服务器raid5磁盘掉线导致raid5不可用的数据恢复案例

服务器数据恢复环境: 惠普ML系列某型号塔式服务器,5块SAS硬盘组建raid5磁盘阵列。 服务器故障&分析: 服务器中的一块硬盘掉线,由于磁盘阵列的冗余特性,服务器正常运行,用户没有察觉。直到另外一块硬盘掉…

JVM垃圾回收算法

Java有着自己一套的内存管理机制,不需要开发者去手动释放内存,开发者只需要写好代码即可,运行过程中产生的垃圾都由JVM回收。那JVM都是用哪些算法进行垃圾回收呢? 标记-清除(Mark-Sweep)算法 标记-清除(Mark-Sweep)算法是最早出…

分布式 ID 生成系统 Leaf 的设计思路,源码解读

什么是分布式ID? ID 最大的特点是 唯一 而分布式 ID,就是指分布式系统下的 ID,它是 全局唯一 的。 为啥需要分布式ID呢? 这就和 唯一 息息相关了。 比如我们用 MySQL 存储数据,一开始数据量不大,但是业…

别再纠结线程池大小 + 线程数量了,没有固定公式的

可能很多人都看到过一个线程数设置的理论: CPU 密集型的程序 - 核心数 1I/O 密集型的程序 - 核心数 * 2 不会吧,不会吧,真的有人按照这个理论规划线程数? 线程数和CPU利用率的小测试 抛开一些操作系统,计算机原理不…

水资源税取水计量监管系统 取用水户水量在线监测平台 水资源远程实时监控管理系统

平升电子水资源税取水计量监管系统/取用水户水量在线监测平台/水资源远程实时监控管理系统适用于水资源管理部门对地下水和地表水的用水量、水位、水质进行监测,还可扩展远程或自动控制泵/闸/阀实现用水量控制。系统帮助管理部门掌握所辖区域内水资源取用水情况&…

打电话用蓝牙耳机什么牌子好?打电话清晰的蓝牙耳机推荐

随着蓝牙耳机的普及,我们可以享受到沉浸式的音乐。在不打扰任何人的情况下,尽情的享受,使用蓝牙耳机有时候避免不了来电,为了保证通话的清晰,许多人在选购的时候也会更加的看重麦克风,下面小编整理了几款打…

如何使用JMeter操作Elasticsearch

JMeter是Apache组织基于Java开发的压力测试工具,用于对软件做压力测试,Elasticsearch是一个分布式、高扩展、高实时的搜索与数据分析引擎(简称ES),下面来展示最基本的用JMeter操作ES示例。 打开JMeter工具,在测试计划下添加“线程…

【金万维】使用天联高级版登录U8,进行凭证打印操作。

【操作步骤】 通过“天联高级版客户端”登录 U8,打印凭证步骤: 第一步:首先查看一下天联高级版客户端的打印参数是否如下图所示。 (一般软件初次安装后,默认即可。) 第二步:进入U8后&#xff0…

web概述20

MVC模式 MVC全名是Model View Controller是模型视图控制器的缩写,是一种软件设计典范,是一种架构型的模式,本身不引入新功能,只是帮助将开发的结构组织的更加合理。 它使用一种业务逻辑、数据、界面显示分离的方法,将…

麦芽糖-聚乙二醇-顺铂 cisplatin-PEG-maltose

麦芽糖-聚乙二醇-顺铂 cisplatin-PEG-maltose 中文名称:麦芽糖-顺铂 英文名称:maltose-cisplatin 别称:生物素修饰麦芽糖 生物素-麦芽糖 麦芽糖-聚乙二醇-顺铂 cisplatin-PEG-maltose 顺铂-PEG-麦芽糖 纯度:95% 存储条件…