如何解释 Google perf 工具 CPU 分析器中的地址

2024-03-29

我的 C++ 程序消耗大量 CPU,并且在运行时消耗更多。我使用 Google 性能工具来分析 CPU 使用情况,这就是我得到的结果:

(pprof) top
Total: 1343 samples
    1330  99.0%  99.0%     1330  99.0% 0x0000000801dcb11c
       7   0.5%  99.6%        7   0.5% 0x0000000801dcb11e
       4   0.3%  99.9%        4   0.3% program::threadWorker
       1   0.1%  99.9%        1   0.1% 0x0000000801dcb110
       1   0.1% 100.0%        1   0.1% 0x00007fffffffffc0

然而,这里显示的 5 个进程中只有 1 个是实际的函数名称;其余的是地址。我怎样才能知道这些地址属于什么内容? (当然我最感兴趣的是上面显示的第一个地址)

编辑:这就是我运行探查器的方式:

env CPUPROFILE=prof.out ./a.out
[kill program]

pprof ./a.out prof.out

另外,我通过代码检查找到了根本原因。但让探查器找出罪魁祸首的函数而不是地址仍然是件好事。


是否有可能您在 google-pprof 中加载结果时没有指定可执行文件?

我将其运行为:

$ google-pprof executable /tmp/executable.hprof --text | less

并且可以很好地看到函数名称。或者当您运行 google-pprof 时,这些方法位于某个共享库中而不是在您的路径中?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何解释 Google perf 工具 CPU 分析器中的地址 的相关文章

随机推荐

  • 将扰乱的 PDF 字符重新映射为可读文本

    我确实遇到了一个问题 因为 cups PDF 创建的 PDF 文档中的字符被映射到奇怪的符号 在 Ubuntu Linux 14 04 和 16 04 上 我认为它是某种 unicode 即使 Python 告诉我它的字符串类型 type
  • Magento CE :: 第一次订购有折扣吗?

    是否有任何合理的方式可以为客户的第一笔订单提供折扣 我想这会要求用户注册一个免费帐户 这很好 但在那之后 我就陷入了困境 Magento 中的促销功能无法满足此类需求 Google 也找不到任何好的潜在客户 Ideas 没有任何开箱即用的方
  • 如果在 Inno Setup 中更新安装,则排除 ssPostInstall 步骤中的部分代码部分

    我尝试对两者使用相同的安装程序 全新安装和更新 因此 如果用户第一次尝试安装我的应用程序 它将运行完整安装 包括 MySQL 安装程序作为先决条件 以及 MySQL 安装的一部分 Code 就会正常执行 但是 如果用户已经安装了我的应用程序
  • 通过 Vertex AI 用户管理笔记本中的启动后脚本创建自定义内核

    我正在尝试使用启动后脚本创建一个 Vertex AI 用户管理笔记本 其 Jupyter Lab 在首次启动时有一个专用的虚拟环境和相应的计算内核 我已成功创建实例 然后作为 Jupyter Lab gt Terminal 中的第二个手动步
  • 在 IE8 中,jquery-ui 的对话框将其内容的高度设置为零。我怎样才能解决这个问题?

    我正在使用 jquery UI 的对话框小部件在我的 Web 应用程序中呈现模式对话框 我通过将所需 DOM 元素的 ID 传递到以下函数来实现此目的 var setupDialog function eltId eltId dialog
  • 集成 bootstrap-select 以与 Ember 配合使用

    我想得到引导选择 https github com silviomoreto bootstrap select使用 Ember js Ember 对视图对象的管理存在一些问题 导致其无法按预期工作 JSFiddle http jsfiddl
  • 不兼容的 firebase 库

    我使用的是最新版本com google firebase firebase core 16 0 3和最新版本的com google firebase firebase messaging 17 3 1 但它们取决于不同的版本com goog
  • 列出 Google Fonts API 中的所有可变字体?

    我需要通过 Google Fonts API 获取所有可用的可变字体的列表 我可以从这个端点获取所有字体名称 您可以添加一些参数 但我认为其中不包括可变字体过滤器 我认为在进行 API 调用后我无法过滤结果 这里的 Open Sans 是一
  • 创建的 Iframe 和扩展、google chrome 扩展之间的通信

    我尝试从从我的扩展程序加载的 iframe 发送消息到我的扩展程序 后台脚本或内容脚本 创建的 Iframe 通过内容脚本从扩展加载 我正在寻找一种沟通方式 但我所有的尝试都失败了 清单 json author background pag
  • 在 Pandas DataFrame 上滚动应用速度更快?

    改进这个问题 https stackoverflow com questions 21040766 python pandas rolling apply two column input into function它提供了一个巧妙的解决方
  • 使用泛型类型反射执行类

    我想在使用反射 查找接口实现 找到它之后 在使用泛型类型的类上动态执行方法 下面是我陷入困境的一个例子 非常感谢您的帮助 Setup public interface IActionRequired
  • 关于在 Perl 中将混合编码文件转换为 UTF8 的问题

    我正在将我们大学中国研究系古老的基于 DOS 的图书馆程序生成的文件转换为更有用和更易于访问的文件 我正在处理的问题之一是导出的文本文件 大小约为 80MB 采用混合编码 我在 Windows 上 我认为德语元音变音和其他高级 ASCII
  • 如何为 SwiftUI 列表中的各个行设置动画?

    我想显示一个列表 其中每一行都显示不透明动画并且延迟逐渐增加 因此 第一行应在 0 1 秒后出现 第二行应在 0 3 秒后出现 第三行应在 0 5 秒后出现 依此类推 我尝试了以下方法 但它不起作用 因为所有行都会同时出现并且没有动画 任何
  • 分布式环境中会话ID的唯一性?

    我们正在使用 Spring Session 由关键的 Gemfire 备份 来运行在分布式环境中的 Spring Boot 应用程序 在这样的分布式环境中 Spring Session 是否确保新的会话使用唯一的会话 id 跨不同 JVM
  • 图表中的最小损坏成本

    给定一个图 G V E 其中有 N 个节点 编号从 0 到 N 1 并且恰好为 N 1 双向边缘 图中的每条边都有一个正成本 C u v 边缘权重 整个图是这样的任何一对节点之间都有唯一的路径 我认为改进的 Kruskal 是正确的选择 取
  • DateTimePicker 永远不会更新!

    我有一些DateTimePicker是一种永不更新的形式 我试过了Value and Text Invalidate 进而Update 并且Refresh 从当前日期开始 他们的价值观似乎没有任何改变 无论我设置什么 当前日期都是 相对 今
  • 自动登录其他网站的php脚本

    我想要一个脚本 通过它我可以登录其他网站而无需打开他们的登录页面 场景是这样的 我不想将登录 ID 和密码提供给他人 他们只需单击链接或按钮 脚本就会完成其工作 它将传递所需的登录 ID 和密码 并提交登录表单并登录 并且客户端拥有所有凭据
  • 如何使用单个bat文件传递动态参数来运行一个exe

    我需要运行一个 EXE 它将采用 7 个参数 其中一个参数是动态的 有人可以帮助我如何通过使用bat文件传递动态参数来运行EXE吗 谢谢 柴塔尼亚 如果您需要执行带有动态数量参数的命令 您可以使用 命令示例 foo exe options
  • C 变量名定义中使用下划线的原因是什么?

    我试图了解开发人员何时需要定义C前面带有 的变量 其原因何在 例如 uint32 t xyz 0 也许这有帮助 来自 C99 7 1 3 保留标识符 所有以下划线和大写字母或其他字母开头的标识符 下划线始终保留用于任何用途 所有以下划线开头
  • 如何解释 Google perf 工具 CPU 分析器中的地址

    我的 C 程序消耗大量 CPU 并且在运行时消耗更多 我使用 Google 性能工具来分析 CPU 使用情况 这就是我得到的结果 pprof top Total 1343 samples 1330 99 0 99 0 1330 99 0 0