有没有办法使用 perf 工具查找流程中各个功能的性能?

2024-04-23

我正在尝试在流程中实现各个功能的性能。我该如何使用 perf 工具来做到这一点?还有其他工具吗?

例如,假设 main 函数调用函数 A 、 B 、 C 。我想分别获得主要功能以及功能 A、B、C 的性能。

有没有一个很好的文档来了解 perf 源代码?

谢谢。


您想要做的是用户空间探测。 Perf只能做一部分。 尝试sudo perf top -p [pid]然后观看记分牌。它将显示按 CPU 使用率排序的函数列表。以下是基准测试期间 Redis 的快照:

如果你想获得用户层功能的更多信息,例如 IO 使用情况、延迟、内存使用情况,我强烈建议你使用 Systemtap。它既是脚本语言,也是在基于 Linux 内核的操作系统上分析程序的工具。这是一个关于它的教程:

http://qqibrow.github.io/performance-profiling-with-systemtap/ http://qqibrow.github.io/performance-profiling-with-systemtap/

而且您不需要成为 systemtap 脚本编写专家,网上有很多好的脚本适合您。 例如,有一个关于使用它来找出特定功能的延迟的示例。

https://github.com/openresty/stapxx#func-latency-distr https://github.com/openresty/stapxx#func-latency-distr

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

有没有办法使用 perf 工具查找流程中各个功能的性能? 的相关文章

  • php.ini 更改,但在 Ubuntu 上无效

    我想更改 PHP 上传文件大小的限制 这是我的输出的一些信息phpinfo https www php net manual en function phpinfo php Configuration File php ini Path e
  • 获取后台进程的退出代码

    我有一个从我的主 bourne shell 脚本中调用的命令 CMD 该命令需要很长时间 我想修改脚本如下 作为后台进程并行运行命令 CMD CMD 在主脚本中 有一个循环每隔几秒监视生成的命令 该循环还向标准输出回显一些消息 指示脚本的进
  • 产生并处理软件中断

    有人可以告诉我如何在Linux下生成软件中断然后用request irq处理它吗 或者也许这是不可能的 您可以使用软中断来代替 您可以通过编辑 include linux interrupt h 来定义您的 sofirq 然后使用函数 ra
  • c 中的分叉和管道过程

    所以我有一个项目要做 但我完全被难住了 我花了十个小时却一无所获 我并不是特别想要答案的代码 但是一些伪代码和正确方向的良好提示将有帮助 它分叉多个进程 k 命令行参数 通过管道连接 每个进程都连接到下一个进程 最后一个进程连接到第一个进程
  • 无法使用 sysctl 更改每个进程的最大打开文件数

    我的实际极限是1024 ulimit a core file size blocks c 0 data seg size kbytes d unlimited scheduling priority e 0 file size blocks
  • 如何在Conky中实现一个基本的Lua功能?

    我正在尝试向我的 Conky 添加一个函数 该函数打印字符串的长度以用于调试目的 代码位于名为的文件内test lua 非常简单 function test word return string len word end 我这样加载它 在我
  • x86-64 上这个语句有什么问题?

    该函数的目的是获取堆栈的起始地址 unsigned long find start void asm movq rsp eax 当我编译它时 出现错误 Error suffix or operands invalid for movq mo
  • PHP exec - 检查是否启用或禁用

    有没有办法检查 php 脚本是否exec 在服务器上启用还是禁用 这将检查该功能是否确实有效 权限 权利等 if exec echo EXEC EXEC echo exec works
  • 使用 AWK 或 SED 以及以下标签以逗号分隔

    使用 AWK 或 SED 以及下面使用的标签以逗号分隔 BEGIN AccountID BEGIN CallerID BEGIN Billed Account Attributes 1111111 1111111 1111111 END B
  • Bash 变量:区分大小写?

    Bash shell 脚本区分大小写吗 是可变的date与DATE 是的 它区分大小写 就像 UNIX 的其余部分一样 date and DATE是两个不同的变量 makefile and Makefile是两个不同的文件 h and H是
  • 在lua中组合两个函数

    我刚开始学习lua 所以我的要求可能是不可能的 现在 我有一个接受函数的方法 function adjust focused window fn local win window focusedwindow local winframe w
  • 更改子进程中的 iostream

    现在 我正在开发一个项目 其中我需要启动一个子进程来使用 C 在 Linux 中执行一个新程序 并且我需要重定向标准输入和输出 就像在 C 中一样 它们是cin and cout 到一个文件 这意味着在子进程中 标准输入和输出都是文件 子进
  • 获取当前时间(以小时和分钟为单位)

    我正在尝试从系统收集信息 并且需要获取当前时间 以小时和分钟为单位 目前我有 date awk print 4 输出如下 16 18 54 怎样才能把秒数去掉呢 提供格式字符串 date H M Running man date将给出所有格
  • PyGTK+3(PyGObject)创建屏幕截图?

    我过去 3 天在 google 上搜索 如何使用 PyGTK 3 创建屏幕截图 有关于 pyqt pygtk 2 wx 和 PIL 的 gallizion 教程 顺便说一句 我不需要 scrot imlib2 imagemagick 等外部
  • Linux 中不使用 C++ 的 C 异常处理

    Linux 是否提供了 C 语言的异常处理而不求助于 C 或者 实现此类异常处理的最佳方法是什么 目标是避免检查每个调用的函数的返回码 而是执行类似于 C 的线程安全且易于移植的操作 您可以通过为其编写信号处理程序来处理信号 GNU 记录的
  • Rust 中返回函数的正确语法是什么?

    Rust 中返回函数的正确语法是什么 以下代码无法编译 fn identity
  • 为什么 SDL 在 Mac 上比 Linux 上慢得多?

    我正在研究使用 SDL2 渲染的单线程图形程序 https github com TurkeyMcMac intergrid 请参阅末尾的较小示例 它既可以在旧的 Linux 机器上运行 也可以在不太旧的 Mac 上运行 Linux 计算机
  • 将 -1 作为文件描述符传递给 mmap

    我对 FC17 Linux 中的 ls 命令进行了 strace 以下是输出 execve usr bin ls ls 48 vars 0 brk 0 0x27c1000 mmap NULL 4096 PROT READ PROT WRIT
  • VS2010分析器:是否可以分析一种特定方法?

    可能有一些方法可以打开和关闭代码分析 或者您可以选择要分析的特定函数吗 您还可以使用分析器的数据收集 API 来启动和停止围绕您感兴趣的方法进行分析 请参阅这篇 MSDN 文章 http msdn microsoft com en us l
  • 无法使用Linux服务启动Archiva 2.1.0

    我正在尝试在 Linux 上启动最近发布的 Apache Archiva v2 1 0 独立版 出于测试目的 该 zip 已解压缩在 opt archiva 2 0 文档说 http archiva apache org docs 2 1

随机推荐

  • php microtime() 格式值

    PHP microtime 返回如下内容 0 56876200 1385731177 that s msec sec 我需要这种格式的值 1385731177056876200 this is sec msec without space
  • C# 的检查点库

    我正在寻找 C 检查点库 有任何想法吗 see http en wikipedia org wiki Application checkpointing http en wikipedia org wiki Application chec
  • 如何使用 Openxlsx 包修改 Excel 工作簿中的现有工作表?

    我正在使用 openxlsx 包来读取和写入 Excel 文件 我有一个固定文件 其中包含一个名为 数据 的工作表 其他工作表中的公式使用该工作表 我想更新此数据表而不触及其他数据表 我正在尝试以下代码 write xlsx x Rev 4
  • 如何在 Tornado 中记录 HTTP 响应?

    我希望能够在龙卷风中记录 HTTP 请求和响应 这似乎很容易通过请求来完成 def log function handler info Method handler request method Host handler request h
  • 适用于新应用程序引擎应用程序的 Python 3.7 本地开发服务器选项

    我有一个在标准 Python3 运行时上部署和运行的应用程序引擎应用程序 我还可以使用普通命令在本地运行它 例如flask run 但我无法像在 2 7 运行时中运行应用程序那样运行它dev appserver py 我正在使用最新的gcl
  • Django_tables2:根据请求动态隐藏列

    我有一个基于具有多个字段的模型的表 我也有两个TemplateColumns 一个用于编辑特定实体 另一个用于删除它 这是我的代码 class EntitetTable tables Table edit tables TemplateCo
  • io.cucumber 和 info.cukes 之间有什么区别

    我正在尝试使用 Cucumber 集成 BDD 但我真的很困惑有什么区别io 黄瓜 and 信息库克斯图书馆 以及使用哪一种以及何时使用 我尝试阅读并理解 github自述文件 md https github com cucumber cu
  • 如何清理提交树中未使用的侧分支?

    如何清理提交树中未使用的侧分支 不是真正的 git 分支 示例 树 假提交哈希 提交消息 可选 指针 0001 last commit master origin master HEAD 0002 old unused merge 0003
  • 使用 Jquery 验证插件 Ajax 远程验证 WordPress 用户名和电子邮件

    有谁知道如何使用 jquery 验证插件验证 WordPress 用户名和电子邮件 我正在尝试使用验证的远程方法检查用户名和电子邮件是否存在 我注意到 WordPress 有 username exists 和 email exists 等
  • Java关闭PDF错误

    我有这个java代码 try PDFTextStripper pdfs new PDFTextStripper String textOfPDF pdfs getText PDDocument load doc doc add new Fi
  • 禁用 UITextfield 的键盘

    我想知道如何禁用 UITextfield 的输入视图 环境textField inputView nil or textField setInputView nil 在 ShouldBeginEditing 中不执行任何操作 并使用user
  • [NSObject:任何对象]?' Xcode 6 Beta 6 中没有名为“下标”的成员

    我正在 Swift 中的 Xcode 6 Beta 6 中构建一个应用程序 但我不断收到此错误 NSObject AnyObject does not have a member named subscript 我不知道如何解决这个问题 我
  • 生成ip和限时下载链接

    有一个用于下载文件的直接链接 用户可以在付款后下载该链接 如下所示 http example com download webapp rar 但我需要生成ip和时间限制的下载链接 以防止其他人窃取该文件 我想在不使用任何数据库的情况下执行此
  • 在哪里将 google-services.json 文件放入 eclipse 项目中?

    我正在尝试实施新的GCM client在安卓上 在某一时刻 您必须启用Google Services对于该应用程序 启用后Cloud Messaging你必须下载该文件google services json并将其放入app or mobi
  • 模块化和抽象反应组件功能

    我下面有一个工作组件 允许所有复选框和复选框 它工作完美 然而 我讨厌这样的想法 每次我想使用此功能时 我都必须携带所有这些代码 我正在寻找一种在反应中使这个模块化的方法 这是 它不会将 输入检查所有 功能的整个功能模块化在一处 我必须在每
  • 如何在 svn 存储库中搜索任何修订版中是否存在文件

    如何搜索名为foo txt曾经提交到我的 svn 存储库 在任何修订版中 右键单击签出文件夹的根目录 gt TortoiseSVN gt 显示日志 您也可以在那里输入文件名
  • 如何用C语言播放MP3文件?

    我正在寻找在 C 中播放 MP3 文件的最简单方法 我正在寻找一个库 在其中我可以只调用文件名上的函数 或者一个将运行并退出的可执行文件 请建议 Using FMOD http www fmod org download 跨平台 这应该像这
  • 通过 ServiceStack api 使用 Linq2Twitter 和缓存的 OAuth 令牌

    我想使用 Linq2Twitter 从 ServiceStack 编写的 REST API 中进行 Twitter API 调用 我有以下信息 消费者钥匙 消费者秘密 当用户在网站上验证我们的应用程序时缓存的 OAuth 令牌 当用户在网站
  • 使用 F# 进行循环与递归

    这里的示例代码解决了一个项目欧拉问题 从数字 1 开始 按顺时针方向向右移动 方向 5 x 5 螺旋形成如下 21 22 23 24 25 20 7 8 9 10 19 6 1 2 11 18 5 4 3 12 17 16 15 14 13
  • 有没有办法使用 perf 工具查找流程中各个功能的性能?

    我正在尝试在流程中实现各个功能的性能 我该如何使用 perf 工具来做到这一点 还有其他工具吗 例如 假设 main 函数调用函数 A B C 我想分别获得主要功能以及功能 A B C 的性能 有没有一个很好的文档来了解 perf 源代码