使用gpreftools测试性能

news2024/12/23 17:13:47

参考文献:

  1. C++ 性能分析工具调研_性能分析工具 gperf perf vergi 比较-CSDN博客
  2. 性能测试工具CPU profiler(gperftools)的使用心得-CSDN博客
  3. gperftools使用方法和常见问题_pprof no nodes to print-CSDN博客
  4. c++ 分析 gperftools 总结 | Weakyon Blog

文章目录

  • 安装
  • 使用

安装

直接运行指令:

apt-get update

sudo apt install google-perftools

使用

gcc 编译指令中,添加:

-Wl,--no-as-needed,-lprofiler,--as-needed

注意,不要和 gprof 的指令 -pg 合用(它不能处理动态库中的函数,除非设置 -pg 重新编译一遍;它也不能设置 -O3 优化,不产生 gmon.out 文件),会发生冲突。

main.cpp 中,添加如下代码:

#include <gperftools/profiler.h>
int main(){
    ProfilerStart("test_capture.prof");
    
    ...
    
    ProfilerStop();
    return 0;
}

执行 make,直接运行编译出的可执行文件,将在目录下写入 test_capture.prof 文件。

执行指令:

pprof ./main test_capture.prof --pdf > prof.pdf

pprof ./main test_capture.prof --text > prof.txt

前者绘制树状图,展示各个函数的调用次数和时间开销(包括 .so 动态库,支持 -O3 优化)。后者打印列表,从大到小排列。两者的效果如下:

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

如何搭建知识库?2024年6款工具优质推荐

一、引言 在当今信息化时代&#xff0c;知识管理已成为企业提升竞争力和实现持续发展的关键。搭建一个高效、易用的知识库&#xff0c;不仅能帮助企业更好地整合和分享内部资源&#xff0c;还能提升员工的工作效率和创新能力。本文将详细介绍如何搭建知识库&#xff0c;并推荐…

制作语音数据集: 爬取B站音视频+基于whisper语音识别标注

本文以制作小学课堂音频数据集为例子 1. 搜索关键字获取音视频链接 if __name__ "__main__":with sync_playwright() as playwright:searcher BLVideoSearch(playwright, headlessTrue)url searcher.make_url(keyword["小学公开课"])searcher.run(url, …

英文科目一外国人要考中国驾照理论考试题目是什么样的

随着中国的国际化发展&#xff0c;越来越多的外国朋友选择在中国生活和工作&#xff0c;其中一些人可能会考虑在这里考取驾驶执照。然而&#xff0c;语言障碍成为了他们面临的一大挑战。一个常见的问题是科目一考试是否提供英文版本或者是否有翻译服务。本文将介绍中国车管所提…

什么是IP?

目录 简介 IP IP协议 IP地址 发展历程 IP地址类型 公有地址 私有地址 IP地址编址方式 A类IP地址 B类IP地址 C类IP地址 D类IP地址 特殊的网址 子网 超网 无类间路由 IP地址的分配 IP地址管理 手工管理模式 DHCP分配IP地址的管理模式 通过交换机管理IP 地址…

分布式ID-一窥雪花算法的原生实现问题与解决方案(CosId)

分布式ID-雪花算法的问题与方案&#xff08;CosId&#xff09; 基本原理 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url%E5%88%86%E5%B8%83%E5%BC%8FID-%E9%9B%AA%E8%8A%B1%E7%AE%9…

微分方程(Blanchard Differential Equations 4th)中文版Section1.6

平衡点与相直线 给定一个微分方程 d y d t = f ( t , y ) , \frac{dy}{dt} = f(t, y), dtdy​=f(t,y), 我们可以通过绘制斜率场和勾勒图形来大致了解解的行为,或者使用欧拉法计算近似解。有时我们甚至可以推导出解的显式公式并绘制结果。所有这些技术都需要相当多的工作,无…

武汉流星汇聚:西班牙时尚消费高涨,中国商家借亚马逊平台拓商机

在2024年第二季度的亚马逊西班牙站&#xff0c;一场前所未有的时尚盛宴正悄然上演。销售额同比高增长TOP10品类榜单的揭晓&#xff0c;不仅揭示了西班牙消费者对于时尚品类的狂热追求&#xff0c;更为亚马逊平台上的中国商家开启了一扇通往新蓝海的大门。其中&#xff0c;男士拳…

使用LlamaIndex中的Reli 进行实体链接和关系提取

从文本中构建知识图谱一直是一个引人入胜的研究领域。随着大型语言模型(LLM)的出现,这一领域获得了更多主流关注。然而,大型语言模型的成本可能相当高昂。另一种方法是对较小的模型进行微调,这种方法得到了学术研究的支持,并产生了更有效的解决方案。今天,我们将探讨罗马…

redis mysql oracle mssql postgresql提权工具mdut

mdut工具使用 mdut用于数据库的连接&#xff0c;连接成功后可用户反弹shell&#xff0c;命令执行 mdut工具运行说明 1&#xff0c;此工具需要在jdk1.8的环境下运行 2&#xff0c;下载完工具包之后&#xff0c;找到java1.8环境&#xff0c;运行jar文件 java.exe -jar Multipl…

Linux Redis 删除指定库下所有 Key

代码示例 以下是每一步需要执行的代码及其注释&#xff1a; 连接 Redis redis-cli -h <hostname> -p <port> -a <password>-h&#xff1a;指定 Redis 服务器的主机名。 -p&#xff1a;指定 Redis 服务器的端口号。 -a&#xff1a;指定 Redis 服务器的密码。…

基于Arch的轻量级发行版Archcraft结合内网穿透实现远程SSH连接

文章目录 前言1. 本地SSH连接测试2. Archcraft安装Cpolar3. 配置 SSH公网地址4. 公网远程SSH连接5. 固定SSH公网地址6. SSH固定地址连接 前言 本文主要介绍如何在Archcraft系统中安装Cpolar内网穿透工具,并以实现Windows环境ssh远程连接本地局域网Archcraft系统来说明使用内网…

ubuntu安装虚拟环境(tensorflow、torch)

一、安装需求 1、确保ubuntu可以ping通百度 2、设置好了pip镜像源&#xff0c;&#xff08;具体可看&#xff1a;ubuntu配pip的源-CSDN博客&#xff09; 二、安装虚拟环境&#xff08;务必使用sudo进行&#xff09; step1&#xff1a;执行安装命令 更改了pip默认使用pip3的…

SpringBoot+Vue在线商城(电子商城)系统-附源码与配套论文

摘 要 随着互联网技术的发展和普及&#xff0c;电子商务在全球范围内得到了迅猛的发展&#xff0c;已经成为了一种重要的商业模式和生活方式。电子商城是电子商务的重要组成部分&#xff0c;是一个基于互联网的商业模式和交易平台&#xff0c;通过网络进行产品和服务的销售。…

18705 01背包问题

### 分析 这是一个典型的0/1背包问题。我们需要在有限的背包容量下&#xff0c;选择若干物品&#xff0c;使得获得的总价值最大。可以使用动态规划来解决这个问题。 ### 伪代码 1. 定义一个一维数组dp&#xff0c;其中dp[j]表示容量为j的背包能获得的最大价值。 2. 初始化dp[0…

STM32的相关简单介绍

一、什么是STM32 STM32是ST公司设计的一系列以ARM Cortex-M为核心的32位微控制器 ST公司&#xff0c;即意法半导体集团(STMicrolectronics,简称ST)&#xff0c;1987年成立。由意大利的SGS微电子公司和法国Thomson半导体公司合并而成。 在当下的32位微控制器中&#xff0c;STM…

系统主机加固的十个方法,教你做好主机加固

环境背景 随着全球数字化转型的加速&#xff0c;企业IT环境变得愈发复杂&#xff0c;服务器主机面临的安全威胁也日益多样化。无论是工业控制系统、企业内部网络、企业内部服务器&#xff0c;还是云计算环境&#xff0c;都可能成为网络攻击的目标。此外&#xff0c;随着“工业…

重构版:链动3+1创新裂变模式解析

链动31模式&#xff0c;作为一种创新的市场扩张策略&#xff0c;专注于通过产品的独特魅力驱动用户自主传播与裂变。与传统的链动21模式相比&#xff0c;它在结构上进行了重大革新&#xff0c;不再局限于传统的太阳线裂变方式&#xff0c;而是引入了四四复制的架构&#xff0c;…

【Python零基础】while循环和用户输入

文章目录 前言一、input()函数二、while循环三、使用while循环来处理列表和字典总结 前言 我们开发一个应用程序&#xff0c;目的都是为了解决最终用户的问题&#xff0c;针对用户界面输入的数据&#xff0c;按照用户期待的逻辑进行处理&#xff0c;得到用户想要的结果。本章将…

如何查看Squid的DNS缓存

使用squidclient mgr:ipcache命令查看Squid的DNS缓存记录 如果squid端口不是3128, 需要指定端口号, squidclient -p {port} mgr:ipcache # squidclient mgr:ipcache ... IP Cache Statistics: ... IP Cache Contents:Hostname Flg lstref TTL N(b)…

【排序算法】八大排序(上)(c语言实现)(附源码)

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;算法 目录 前言 写一串测试数据 交换两元素的函数 一、冒泡排序 二、选择排序 三、插入排序 四、希尔排序 程序全部代码 总结 前言 排序算法是计算机科…