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

C++性能测试工具——sysprof的使用
一、sysprof sysprof相对于前面的一些性能测试工具来说,要简单不少。特别是其图形界面的操作,非常容易上手,它还支持分析文件的保存和导入功能,这是一个非常不错的功能。做为一款系统性能测试工具,它支持多种硬件平台…...
JavaScript性能优化实战(13):性能测试与持续优化
在前面的系列文章中,我们探讨了各种JavaScript性能优化的方法和实战案例。然而,优化工作不应仅是一次性的努力,而应当成为开发流程中的常态。本篇将聚焦于如何建立系统化的性能测试体系,并实现持续的性能优化机制,确保应用长期保持出色的性能表现。 前端性能测试体系构建…...
questions and answers_1
TCP 长连接和短连接有什么区别? TCP 短连接是指客户端与服务端连接后只进行一次读写就关闭连接,一般是客户端关闭。 而长连接则是指在进行完一次读写后不关闭连接,直到服务端压力过大则选择关闭一些长时间为进行读写的连接。 TCP 短连接的优…...

树莓派内核源码的下载,配置,编译和替换
共享文件夹的创建 ubuntu创建共享文件夹可以实现和本地windows跨系统文件共享 下面是创建步骤 先在windows准备一个文件夹来当做共享文件夹 树莓派内核源码下载 1.在树莓派终端输入以下指令查看内核版本 uname -r我这里是已经编译替换过后的版本 2.选择树莓派对应的版本号下…...

CentOS停止维护了,解决yum不能安装软件的问题
最近在使用CentOS的yum命令安装软件时,出现了如下错误: 原因: 这是因为CentOS在2024 年 6 月 30 日停止维护了,同时也移除了相关的软件镜像仓库,导致网站地址访问不了,从而下载不了软件。 解决方法…...

过压保护电路设计和计算
设备供电电压因各种原因变得过高会烧坏设备,因此可以在前级加过压保护电路。 稳压二极管+PMOS 电路分析 1、当输入电压 Vin < 5.1V 时:(下图以输入电压 Vin = 5V 举例) D1是5.1V稳压管,此时输入电压Vin才5V,小于5.1V,所以稳压管D1未进入稳压状态,不导通。 5.1V稳…...

20250523-BUG:无法加载“GameLib/Framework.h“头文件(已解决)
BUG:无法加载"GameLib/Framework.h"头文件(已解决) 最近在打开新的C项目时报了这个错,我是按照以下步骤来排除的BUG,希望对您有所帮助~ 检查【C/C】-【附加包含目录】中的路径有无问题,一般需要加…...

OpenCv高阶(8.0)——答题卡识别自动判分
文章目录 前言一、代码分析及流程讲解(一)初始化模块正确答案映射字典(题目序号: 正确选项索引)图像显示工具函数 (二)轮廓处理工具模块(三)几何变换核心模块 二、主处理流程图像读取…...

Python语法特点与编码规范
注释 单行注释 把#号当做注释符号 多行注释 python中并没有规定多行注释标记,通常使用单引号作为多行注释 中文注释 规定文件所用编码,当时是为解决python2不支持中文的问题 #codingutf-8代码缩进 python采用代码缩进和冒号区分代码层次,…...

反本能---如何对抗你的习以为常
目录 一、概述 二、自我提升 (一)我们为什么总想拖延 (二)如何有效应对拖延 (三)如何更好的自我控制 (四)为啥付出了没有回报 (五)如何提高学习效率 三…...
为什么信号经过线束会有衰减?
信号在线束(电线、电缆)中传播时会发生衰减,通俗来说就像 “能量在路上被慢慢消耗”,可以用几个生活中的类比来理解: 1. 线束本身的 “阻力”—— 电阻损耗 类比:就像水流过水管时,水管内壁粗糙…...

(15)关于窗体的右键菜单的学习与使用,这关系到了信号与事件 event
(1)起因来源于 4.11 的老师讲的例题,标准的,规范的使用右键菜单的代码及参考资料如下: (2) 接着脱离上面的那个复杂的环境,用简单的例子测试一下 : 说明老师讲的都是对…...
人工智能在智能教育中的创新应用与未来展望
最近研学过程中发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击链接跳转到网站人工智能及编程语言学习教程。读者们可以通过里面的文章详细了解一下人工智能及其编程等教程和学习方法。下面开始对正文内容的…...
PyTorch图像建模(图像识别、分割和分类案例)
文章目录 图像分类技术:改变生活的智能之眼图形识别技术图像识别过程图像预处理图像特征提取 图像分割技术练习案例:图像分类项目源码地址实现代码(简化版)训练结果(简化版)实现代码(优化版&…...

Ubuntu Desktop 24.04 常用软件安装步骤
文章目录 Ubuntu Desktop 24.04 常用软件安装步骤Snipaste F1快捷截图(超方便 | 我6台电脑每台都用)搜狗输入法快速浏览工具 | 空格键快速预览文件壁纸工具 | varietySSH 工具 | Termius 终端分屏工具 | TmuxCaffeine | 避免息屏小工具 一些设置将启动台…...

Linux iSCSI存储共享实验指南
实验介绍 1、在Linux平台上通过iSCSI协议实现IP-SAN存储共享 2、掌握存储导出(export)和存储导入(import)的配置方法 3、学习iSCSI存储的发现、连接、断开和管理操作 1、实验环境 两台同网段的Linux虚拟机(无需物理交换机) 操作系统:Lin…...
Maven打包SpringBoot项目,因包含SpringBootTest单元测试和Java预览版特性导致打包失败
SpringBoot启用Java预览版特性(无测试类) 在pom.xml文件中加入以下配置表示启用Java预览版 <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration>…...

git入门之HEAD介绍
目录 前言一、HEAD 的含义与作用二、游离状态的触发场景及特征1. 触发条件2. 游离状态的特征 三、游离状态的常见使用情况1. 临时查看历史代码2. 保留游离状态的提交 四、注意事项与最佳实践1. 风险防范2. 状态检测技巧 总结 前言 本文介绍Git核心概念HEAD的定义,作…...

车道线检测:自动驾驶的“眼睛”
在自动驾驶技术的庞大体系中,车道线检测扮演着至关重要的角色,它就像是自动驾驶汽车的“眼睛”,帮助车辆感知道路边界,从而实现安全、准确的行驶。今天,我们就来深入探讨一下车道线检测的奥秘,看看它是如何…...
中国软件行业 2024 年度分析报告
一、行业概况 1.1 定义与范畴 软件行业作为信息技术产业的核心组成部分,主要通过开发、销售及维护软件产品,或依托软件产品为用户提供各类服务。其涵盖软件产品、信息技术服务、信息安全以及嵌入式系统软件等多个细分领域。软件产品包含操作系统、办公软…...

力扣面试150题--填充每个节点的下一个右侧节点指针 II
Day 45 题目描述 思路 初次做法:考虑到每一节点都要指向它右边的第一个节点,那么我们需要从根向下,最好每次提前处理根节点指向它右边的节点,那么符合这样的遍历方法,很容易i想到前序遍历,但是前序遍历是…...

使用openvino和onnxruntime的SDK部署yolo11检测模型
这里的代码参考ultralytics代码库里面的examples文件夹下面的openvino和onnxruntime使用案例部署yolo11检测模型的代码。这两种部署框架和前面的tensorRT框架都是类似的,只是使用的接口不太一样。 PART A -- onnxruntime的使用 1.下载onnxruntime的推理框架 (1) …...

C 语言学习笔记(指针4)
内容提要 指针 函数指针与指针函数二级指针 指针 函数指针与指针函数 函数指针 定义 函数指针本质上是指针,是一个指向函数的指针。函数都有一个入口地址,所谓指向函数的指针,就是指向函数的入口地址。(这里的函数名就代表…...
PostgreSQL 数据库备份与恢复
1 逻辑备份(单库) postgres#pg_dump --help 使用方法: pg_dump [选项]... [数据库名字] 一般选项: -f, --fileFILENAME 输出文件或目录名 -F, --formatc|d|t|p 输出文件格式 (c 自定义压缩格式输出, d 目录, tar,p 备份为文本明…...
QT高DPI支持
核心函数: qputenv("QT_SCREEN_SCALE_FACTORS", envVar); 如: qputenv("QT_SCREEN_SCALE_FACTORS", "1.2"); 这是我个人目前用的效果最好的,可惜数值不能小于1,小于1的时候,会出问题。 需要程序…...

MySQL的相关操作
目录 一. 字符串函数 二. group by分组 2.1 作用 2.2 格式 2.3 举例 三. order by排序 3.1 格式 3.2 举例 四. limit 4.1 作用 4.2 举例 五. having 5.1 作用 5.2 举例 六. 正则表达式 七. 多表查询 7.1 定义 7.2 子查询 7.3 联合查询 纵向合并 7.4 交叉连…...
从elf文件动态加载的过程解释got,plt及got.plt,plt.sec
author: hjjdebug date: 2025年 05月 23日 星期五 17:29:34 CST desprib: 从elf文件动态加载的过程解释got,plt及got.plt,plt.sec 文章目录 1. 概念定义2. 测试源码3. 外部函数调用对应着 .plt.sec 中的一小段代码,4. .got.plt 将来存储实际的外部函数地址, 开始存储.plt中对应…...

鸿蒙HarmonyOS多设备流转:分布式的智能协同技术介绍
随着物联网和智能设备的普及,多设备间的无缝协作变得越来越重要。鸿蒙(HarmonyOS)作为华为推出的新一代操作系统,其分布式技术为实现多设备流转提供了强大的支持。本文将详细介绍鸿蒙多设备流转的技术原理、实现方式和应用场景。 …...

XXE(外部实体注入)
目录 学习xxe前提:了解xml格式 1. XML基础 2. XXE基础知识 2.1. 结构 2.2. 定义与原理 2.3. XML实体类型 2.4. 攻击类型 2.5. 防御措施 3. pikachu靶场xxe练习 学习xxe前提:了解xml格式 1. XML基础 文档结构包括XML声明、DTD文档类型定义&…...

jenkins凭据管理
用途: 存储构建需要与其他系统认证所使用的账户或者密码信息. Username with password类型存储Harbor或者其他系统的用户名和密码。GitLab API token类型存储Gitlab的用户API token。Secret text类型可以用来存储OpenShift等系统中的token。Certificate类型可以用户存储证书&am…...