gprof安装使用(CMake)说明

一、安装

1、gprof默认已安装,可安装相关图形处理
sudo apt-get install python graphviz
sudo pip install gprof2dot

注意:在Debian中没有安装成功,报Python的版本不匹配

二、使用说明

1、使用CMake管理的工程:
重新配置CMake工程的MakeFile文件,增加:
set(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -pg”)

2、编译
a)使用CMake管理的工程,使用原有编译方式编译即可
b)使用g++直接编译,增加-pg,不需要再链接相关库。

3、执行
第一步,运行程序:./runexe(可执行文件) -N(执行参数选项) ccc(参数)。即可在当前目录生成gmon.out文件(使用其它方式如批处理等同样产生相同的文件)
第二步,分析,执行gprof runexe (不需要 再有参数,同理,runexe等同 runexe.sh)
第三步,生成文件,gprof runexe gmon.out > result.txt

运行结果:
在这里插入图片描述

4、图形分析
gprof2dot -n 0 -e0 -s ./result.txt | dot -Tpng -o result_dg.png

运行结果:

在这里插入图片描述

三、总结

时隔多年,在CMake工程中再次使用此工具,有些细节已经改变,安装环境也略有不同,所以重新总结安装步骤,以咨为记。

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

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

相关文章

Elastic Stack--05--聚合、映射mapping

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1.聚合(aggregations)基本概念桶(bucket)度量(metrics) 案例 11. 接下来按price字段进行分组:2. 若想对所…

LVS集群 ----------------(直接路由 )DR模式部署 (二)

一、LVS集群的三种工作模式 lvs-nat:修改请求报文的目标IP,多目标IP的DNAT lvs-dr:操纵封装新的MAC地址(直接路由) lvs-tun:隧道模式 lvs-dr 是 LVS集群的 默认工作模式 NAT通过网络地址转换实现的虚拟服务器&…

2024年【电工(初级)】考试内容及电工(初级)考试报名

题库来源:安全生产模拟考试一点通公众号小程序 电工(初级)考试内容根据新电工(初级)考试大纲要求,安全生产模拟考试一点通将电工(初级)模拟考试试题进行汇编,组成一套电…

Gitlab修改仓库权限为public、Internal、Private

Public(公开):所有人都可以访问该仓库; Internal(内部):同一个GitLab群组或实例内的所有用户都可以访问该仓库; Private(私人):仅包括指定成员的用…

2024 年广东省职业院校技能大赛(高职组) “云计算应用”赛项样题②

2024 年广东省职业院校技能大赛(高职组) “云计算应用”赛项样题② 模块一 私有云(50 分)任务 1 私有云服务搭建(10 分)任务 2 私有云服务运维(25 分)任务 3 私有云运维开发&#xf…

突破编程_前端_JS编程实例(目录导航)

1 开发目标 目录导航组件旨在提供一个滚动目录导航功能,使得用户可以方便地通过点击目录条目快速定位到对应的内容标题位置,同时也能够随着滚动条的移动动态显示当前位置在目录中的位置: 2 详细需求 2.1 标题提取与目录生成 组件需要能够自…

虚拟机实验环境配置与使用(计算机系统2)

一、 实验目标: 熟悉Linux上C程序的编译和调试工具,包括以下内容: 1. 了解Linux操作系统及其常用命令 2. 掌握编译工具gcc的基本用法 3. 掌握使用gdb进行程序调试 二、实验环境与工件 1.个人电脑 2. Fedora 13 Linux 操作系统 3. gcc…

【Python】牛客网—软件开发-Python专项练习(day1)

1.(单选)下面哪个是Python中不可变的数据结构? A.set B.list C.tuple D.dict 可变数据类型:列表list[ ]、字典dict{ }、集合set{ }(能查询,也可更改)数据发生改变,但内存地址不变 不…

OPCUA 学习笔记:程序模型

无论是边缘控制器,还是PLC 中,除了信息模型之外,还有应用程序,这些程序可能是IEC61131-3 编写的程序,也可能是其它程序开发的可执行程序。 尽管OPCUA 描述模型能力很强,但是它缺乏算法的描述方式。但是OPCU…

YOLOV5 初体验:简单猫和老鼠数据集模型训练

1、前言 前两天,通过OpenCV 对猫和老鼠视频的抽取,提取了48张图片。这里不再介绍,可以参考之前的文章:利用OpenCV 抽取视频的图片,并制作目标检测数据集-CSDN博客 数据的目录如下: 项目的下载见文末 2、制…

【Web】浅聊Java反序列化之Rome——EqualsBeanObjectBean

目录 简介 原理分析 ToStringBean EqualsBean ObjectBean EXP ①EqualsBean直球纯享版 ②EqualsBean配合ObjectBean优化版 ③纯ObjectBean实现版 关于《浅聊Java反序列化》系列,纯是记录自己的学习历程,宥于本人水平有限,内容很水&a…

YOLOv5-Openvino-ByteTrack【CPU】

纯检测如下: YOLOv5-Openvino和ONNXRuntime推理【CPU】 YOLOv6-Openvino和ONNXRuntime推理【CPU】 YOLOv8-Openvino和ONNXRuntime推理【CPU】 YOLOv9-Openvino和ONNXRuntime推理【CPU】 注:YOLOv5和YOLOv6代码内容基本一致! 全部代码Github&…

Linux--文件类型与权限

Linux上一切皆文件; 蓝色的是目录文件 Linux不以文件的扩展名来区分文件类型,而是在文件属性中有一列专门记录文件类型. ls -l 可以查看 普通文件:.c .cpp .h .txt .pdf .xls (-) 目录文件:文件夹 (d) 管道文件:用于进程间通信的一种文件 (p) 链接文件:相当于W…

一图看懂Redis持久化机制!

持久化策略 Redis 提供了两种持久化策略: RDB (Redis Database Snapshot) 持久化机制,会在一段时间内生成指定时间点的数据集快照(snapshot) AOF(Append Only File) 持久化机制,记录 server 端收到的每一条写命令&am…

【开发工具】认识Git | 认识工作区、暂存区、版本库

文章目录 一、Git初识git本质上是一个版本控制器 二、Git的安装 - CentOS三、Git基本操作1. 创建Git本地仓库2. 配置Git3. 认识工作区、暂存区、版本库4. 版本回退5. 撤销修改情况1:对于工作区的代码,还没有add情况二:已经add ,但…

OB_GINS学习

OB_GINS学习 组合导航中的杆臂测量加速度计的零偏单位转换受到经纬度以及高程影响的正常重力位的计算公式大地坐标系(LBH)向空间直角坐标系(XYZ)的转换及其逆转换导航坐标系(n系)到地心地固坐标系&#xff…

【Prometheus】DataModel

数据模型 DataModel 指标 Metric metric 包含 metric name 和 metric label 格式&#xff1a; <metric name>{<label name><label value>, ...}例如&#xff1a;服务器 HTTP 接口 /messages 的总请求数 api_http_requests_total{method"POST",…

创建机器学习系统及一些思想

我们在创建一个优秀的神经网络需要一个漫长的循环过程。 先选择一个架构&#xff0c;再对我们的架构进行训练&#xff0c;最后诊断我们的误差&#xff0c;再回到我们重新的循环&#xff0c;直到我们的神经网络足够优秀。这就是机器学习迭代的过程。 误差分析&#xff1a; 我…

【嵌入式——QT】MDI应用程序设计

MDI应用程序就是在主窗口里创建多个同类型的MDI子窗口&#xff0c;这些MDI子窗口在主窗口里显示&#xff0c;并享受主窗口上的工具栏和菜单等操作功能&#xff0c;主窗口上的操作都针对当前活动的MDI子窗口进行。 图示 代码示例 QWMainWindow.h #ifndef QWMAINWINDOW_H …

悬浮工具球(仿 iphone 辅助触控)

悬浮工具球&#xff08;仿 iphone 辅助触控&#xff09; 兼容移动端 touch 事件点击元素以外位置收起解决鼠标抬起触发元素的点击事件问题 Demo Github <template><divref"FloatingBal"class"floating_ball":class"[dragging, isClick]&q…