【性能】基于Perf和VTune的程序性能瓶颈分析

原文:https://www.eefocus.com/embedded/479299

本文首先介绍了对应用程序进行分析的 3 个指标,然后介绍了 Linux 系统工具、Perf 以及 Vtune 工具的使用,尤其重点描述了如何利用 Perf 和 VTune 工具对程序进行剖析,寻找程序的性能瓶颈。利用好这些性能调优工具,能够快速定位程序的性能热点以指导程序的性能瓶颈优化。

1、引言

应用程序的开发测试过程中,对程序性能进行分析和优化是不可或缺的一部分。性能分析(performance analysis 也称为 profiling),是以收集程序运行时信息为手段研究程序行为的分析方法,是一种动态程序分析的方法。性能分析的目的在于决定程序的哪个部分应该被优化,从而提高程序的速度或者内存使用效率。根据帕累托法则(也叫二八定律),只有优化处于性能瓶颈的那些少量代码,才能用最小的成本获得最大的收益。

本文首先介绍了衡量应用程序性能的关键指标,随后介绍如何使用 perf 和 vtune 进行性能分析,找到软件性能的热点部分。完成应用程序的性能分析并找到性能瓶颈后,能够快速精准的定位到需要修改的源码,缩短性能调优的时间。

2、程序性能分析指标

衡量应用程序的性能高低,需要从多个方面进行性能指标的分析,主要包括业务指标、资源指标和可靠性指标。

2.1 业务指标

(1) 响应时间

响应时间是指系统对请求作出响应的时间,可以理解为是指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束的时间,这项指标直接影响用户的感官体验。在实时互动的场景下,一般要求毫秒级的响应速度。

(2) 吞吐量

吞吐量是指单位时间内处理的请求数,常用 QPS(Queries Per Second)和 TPS(TransactionsPerSecond)进行衡量,是衡量多并发的应用系统的重要指标。

(3) 并发数

并发数指系统可以同时承载的正常使用系统功能的用户的数量。这个指标比较直观但是不是很准确,因为用户不同的使用模式会导致不同用户在单位时间发出不同数量的请求。

2.2 资源指标

(1) CPU 使用率

CPU 使用率指的是程序在运行期间实时占用的 CPU 百分比,这是对一个时间段内 CPU 使用状况的统计。通过这个指标可以看出在某一个时间段内 CPU 被占用的情况。

(2) 内存利用率

内存是计算机中重要的部件之一,它是与 CPU 进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大,内存利用率不宜过高,否则会影响系统性能。

(3) 磁盘吞吐量

磁盘指标主

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值