当前位置: 首页 > article >正文

C++性能测试工具——sysprof的使用

一、sysprof

sysprof相对于前面的一些性能测试工具来说,要简单不少。特别是其图形界面的操作,非常容易上手,它还支持分析文件的保存和导入功能,这是一个非常不错的功能。做为一款系统性能测试工具,它支持多种硬件平台。不过正如其支持图形界面一样,其对屏幕的分辨率还是有一定的要求的。
sysprof功能非常强大,它可以对系统范围内的CPU、内和IO资源等进行监控和分析,从而发现应用整体上的瓶颈并提供相关的细节支持,其主要功能包括:
1、图形化界面
提供直观的图形界面(GUI),可以在界面上展示调用栈、耗时情况、CPU时间线等性能相关的数据
在这里插入图片描述

2、支持针对性能相关的多维度数据监控
包括按时间段筛选 CPU 使用情况、查看函数调用栈、保存分析结果等。
在这里插入图片描述

3、系统级采样分析
支持对整个系统的进程进行采样分析,无需重启或重新编译应用程序。
4、较好的兼容性
支持多种Linux环境以及相关的硬件平台

二、安装

sysprof的安装非常简单,可以使用下面的命令安装:

sudo apt install sysprof -y

三、使用说明

sysprof这种支持GUI图形界面的工具来说,应用要简单许多,先看其主界面:

在这里插入图片描述

其使用方法说明:
1、在终端中执行命令“sysprof”,启动图形界面
2、主界面中左上角的“Open”按钮可以打开导出的相关性能测试文档,右上角的快捷菜单中,有更详细的功能,如保存记录等
3、默认启动时,“启动应用程序”为灰,打开后可发出现命令行启动输入文本框和相关环境设置文本框,这和开发者IDE工具中设置相关参数雷同
4、全部进程意味着所有的当前可监控的进程相关分析都会被处理,如果想对具体的某个进程进行监控,请关闭它。在关闭后的输入框中输入进程名进行过滤并找到它
5、设置下方的性能分析器,点选即可(也可点选取消)
6、在终端或其它场景内启动相关测试程序并运行
7、在sysprof中启动“记录”,弹出一个新窗口,等待到需要测试的内容完毕,点击“停止记录”并弹出分析界面
8、依据运行采集的结果进行分析,包括多线程和GPU的分析等
9、根据情况是否对相关结果进行保存等工作

四、实际应用

现在测试一个自己开发的工程,按下面的步骤进行:
1、在终端中执行命令“sysprof”,启动图形界面并选择要使用的“性能分析器”(如调用图、CPU使用率等)
2、在终端或其它场景内启动相关测试程序
3、启动程序的相关运行
4、点击sysprof界面中的“记录”,会启动一个计时的界面
5、待测试完成,点击“停止记录”,即会打开一个界面,即可进行相关的分析
在这里插入图片描述

五、总结

windows窗口界面之所以流行不是没有原因的,不管是普通应用者还是开发者,甚至是资深开发者,对窗口界面的应用都是持一种欢迎的态度的。相对于命令行来说,窗口的说明简单容易上手,不用记忆大量的命令和参数。对大多数人来说(包括大多数开发者),软件只是一个工具,不需要深入的学习它的各种细节和底层逻辑,这才是软件应用的根本。

http://www.lryc.cn/news/2384703.html

相关文章:

  • JavaScript性能优化实战(13):性能测试与持续优化
  • questions and answers_1
  • 树莓派内核源码的下载,配置,编译和替换
  • CentOS停止维护了,解决yum不能安装软件的问题
  • 过压保护电路设计和计算
  • 20250523-BUG:无法加载“GameLib/Framework.h“头文件(已解决)
  • OpenCv高阶(8.0)——答题卡识别自动判分
  • Python语法特点与编码规范
  • 反本能---如何对抗你的习以为常
  • 为什么信号经过线束会有衰减?
  • (15)关于窗体的右键菜单的学习与使用,这关系到了信号与事件 event
  • 人工智能在智能教育中的创新应用与未来展望
  • PyTorch图像建模(图像识别、分割和分类案例)
  • Ubuntu Desktop 24.04 常用软件安装步骤
  • Linux iSCSI存储共享实验指南
  • Maven打包SpringBoot项目,因包含SpringBootTest单元测试和Java预览版特性导致打包失败
  • git入门之HEAD介绍
  • 车道线检测:自动驾驶的“眼睛”
  • 中国软件行业 2024 年度分析报告
  • 力扣面试150题--填充每个节点的下一个右侧节点指针 II
  • 使用openvino和onnxruntime的SDK部署yolo11检测模型
  • C 语言学习笔记(指针4)
  • PostgreSQL 数据库备份与恢复
  • QT高DPI支持
  • MySQL的相关操作
  • 从elf文件动态加载的过程解释got,plt及got.plt,plt.sec
  • 鸿蒙HarmonyOS多设备流转:分布式的智能协同技术介绍
  • XXE(外部实体注入)
  • jenkins凭据管理
  • 驱动开发硬核特训 · Day 31:理解 I2C 子系统的驱动模型与实例剖析