linux perf record:计数(-c)和频率(-F)选项之间的差异

2023-11-27

我试图了解 -c 和 -F 选项性能记录确实如此,但我无法解释我所看到的。我正在运行这些命令:

perf record -a -F <frequency> sleep 1

and

perf record -a -c <count> sleep 1

尝试不同的值频率 and count。我得到的结果是下列

在第一个表中我设置了频率,在第二个表中设置了计数。频率和计数如何影响事件数量?我认为事件的数量与频率和计数无关,但显然情况并非如此。 perf 实际上做了什么?


Count and frequency是两个基本开关,用于在使用时调整采样率perf record(在内部进行采样)。

Count

当你跑步时perf record -c <number>,您指定采样周期(其中“number”是采样周期)。也就是说,对于事件的每“第”次发生,将记录一个样本。当跟踪事件数量的性能计数器溢出时,将记录样本。

我猜您正在借助以下方法获取事件数量perf report。注意perf report永远不会报告事件的实际数量,而只是一个近似值。当您不断调整采样周期时,事件数量将不断变化。perf report只会读取perf.data归档该文件perf record生成,并根据生成的文件的大小,假设记录的样本数量(通过知道内存中记录的样本的大小)。实际记录的事件数量通过以下方式获得:

Number of events = Fixed Sample Period * Number of samples collected

其中固定采样周期是您指定的perf record -c.

频率

这是表达采样周期的另一种方法,即指定每秒采样的平均速率(频率) - 您可以使用 perf record -F 来完成。所以perf record -F 1000每秒将记录大约 1000 个样本,这些样本将在与事件对应的硬件/PMU 计数器溢出时生成。这意味着内核将动态调整采样周期以确保sampling过程遵循采样频率。

This是采样周期动态更新的方式。

采样频率越高,收集的样本数量就越高(几乎成比例)。

可以通过运行命令查看采样周期的变化 -

sudo perf report -D -i perf.data | fgrep RECORD_SAMPLE

每当采样周期不断变化时,事件总数将随着采样周期的变化而不断增加。当采样周期固定时,事件总数也固定,由上式求得。这两种情况下的事件总数都是近似值。

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

linux perf record:计数(-c)和频率(-F)选项之间的差异 的相关文章

  • 在同一查询中选择 Count of ip 和 Count of DISTINCT ip

    我有一个这样的表结构 TABLE NAME counter id datetime url ip 1 2013 04 12 13 27 09 url1 ip01 2 2013 04 13 10 55 43 url2 ip02 3 2013
  • PHP 从命令行启动 gui 程序,但 apache 不启动

    首先 我阅读了有类似问题的人的一些帖子 但所有答案都没有超出导出 DISPLAY 0 0 和 xauth cookies 这是我的问题 提前感谢您的宝贵时间 我开发了一个小库 它使用 OpenGL 和 GLSL 渲染货架 过去几天我将它包装
  • Linux 内核标识符中前导和尾随下划线的含义是什么?

    我不断遇到一些小约定 比如 KERNEL Are the 在这种情况下 是内核开发人员使用的命名约定 还是以这种方式命名宏的语法特定原因 整个代码中有很多这样的例子 例如 某些函数和变量以 甚至 这有什么具体原因吗 它似乎被广泛使用 我只需
  • 将 PDF 转换为 600dpi 的 TIFF 和 jpg 96 dpi

    我想使用 ImageMagick 从 Python 脚本将 pdf 转换为 600 dpi 的 tiff 和 96 dpi 的 jpg 我使用 imagemagick 命令行完成了这项任务 但我想使用python中的Imagemagick将
  • 有谁知道在哪里定义硬件、版本和序列号。 /proc/cpuinfo 的字段?

    我想确保我的 proc cpuinfo 是准确的 目前它输出 Hardware am335xevm Revision 0000 Serial 0000000000000000 我可以在代码中的哪里更改它以给出实际值 这取决于 Linux 的
  • ubuntu:升级软件(cmake)-版本消歧(本地编译)[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我的机器上安装了 cmake 2 8 0 来自 ubuntu 软件包 二进制文件放置在 usr bin cmake 中 我需要将 cmake 版本至少
  • 如何授予 apache 使用 NTFS 分区上的目录的权限?

    我在一台带有 20GB 硬盘的旧机器上运行 Linux Lubutu 12 10 我有一个 1 TB 外部硬盘 上面有一个 NTFS 分区 在该分区上 有一个 www 目录 用于保存我的网页内容 它在启动时自动安装为 media t515
  • SSE:跨页边界的未对齐加载和存储

    我在页面边界旁边执行未对齐加载或存储之前读过某处 例如使用 mm loadu si128 mm storeu si128内在函数 代码应首先检查整个向量 在本例中为 16 个字节 是否属于同一页 如果不属于同一页 则切换到非向量指令 我知道
  • 查找哪些页面不再与写入时复制共享

    假设我在 Linux 中有一个进程 我从中fork 另一个相同的过程 后forking 因为原始进程将开始写入内存 Linux写时复制机制将为进程提供与分叉进程使用的不同的唯一物理内存页 在执行的某个时刻 我如何知道原始进程的哪些页面已被写
  • 如何确保应用程序在 Linux 上持续运行

    我试图确保脚本在开发服务器上保持运行 它会整理统计数据并提供网络服务 因此它应该会持续存在 但一天中有几次 它会因未知原因而消失 当我们注意到时 我们只需再次启动它 但这很麻烦 并且某些用户没有权限 或专有技术 来启动它 作为一名程序员 我
  • 如何使用 GOPATH 的 Samba 服务器位置?

    我正在尝试将 GOPATH 设置为共享网络文件夹 当我进入 export GOPATH smb path to shared folder I get go GOPATH entry is relative must be absolute
  • 如何在 Bash 中给定超时后终止子进程?

    我有一个 bash 脚本 它启动一个子进程 该进程时不时地崩溃 实际上是挂起 而且没有明显的原因 闭源 所以我对此无能为力 因此 我希望能够在给定的时间内启动此进程 如果在给定的时间内没有成功返回 则将其终止 有没有simple and r
  • “make install”将库安装在 /usr/lib 而不是 /usr/lib64

    我正在尝试在 64 位 CentOS 7 2 上构建并安装一个库 为了这个目的我正在跑步 cmake DCMAKE BUILD TYPE Release DCMAKE INSTALL PREFIX usr DCMAKE C COMPILER
  • 在两次之间每分钟执行一次 Cronjob

    我需要在 crontab 中每分钟运行一个 bash 脚本8 45am and 9 50am每天的 Code 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 8 home pull sh gt ho
  • 我如何知道 C 程序的可执行文件是在前台还是后台运行?

    在我的 C 程序中 我想知道我的可执行文件是否像这样在前台运行 a out 或者像这样 a out 如果你是前台工作 getpgrp tcgetpgrp STDOUT FILENO or STDIN FILENO or STDERR FIL
  • 进程退出后 POSIX 名称信号量不会释放

    我正在尝试使用 POSIX 命名信号量进行跨进程同步 我注意到进程死亡或退出后 信号量仍然被系统打开 在进程 打开它 死亡或退出后是否有办法使其关闭 释放 早期的讨论在这里 当将信号量递减至零的进程崩溃时 如何恢复信号量 https sta
  • 监视目录的更改

    很像一个类似的问题 https stackoverflow com questions 112276 directory modification monitoring 我正在尝试监视 Linux 机器上的目录以添加新文件 并希望在这些新文
  • C++ Boost ASIO 简单的周期性定时器?

    我想要一个非常简单的周期性计时器每 50 毫秒调用我的代码 我可以创建一个始终休眠 50 毫秒的线程 但这很痛苦 我可以开始研究用于制作计时器的 Linux API 但它不可移植 I d like使用升压 我只是不确定这是否可能 boost
  • 捕获实时流量时如何开启纳秒精度?

    如何告诉 libpcap v1 6 2 将纳秒值存储在struct pcap pkthdr ts tv usec 而不是微秒值 捕获实时数据包时 Note This question is similar to How to enable
  • git 错误:无法处理 https

    当我尝试使用 git clone 时https xxx https xxx我收到以下错误我不处理协议 https 有人可以帮我吗 完整消息 dementrock dementrock A8Se git 克隆https git innosta

随机推荐

  • 从语音中获取用户输入?

    我刚刚开始尝试 C Net 中的 Windows Speech to Text 功能 我目前已经掌握了基础知识 IE 说点什么 它会根据你所说的提供输出 但是 我正在努力弄清楚如何实际接收用户输入作为变量 我的意思是 例如 如果用户说 Ca
  • 将图像文件保存到sql Server并将字节数组转换为图像

    我将图像存储在数据库中 并希望将它们从字节数组转换为图像 将对象转换为字节数组没有问题 但在尝试从字节数组转换为图像时出现 参数无效 错误 我传递给方法的对象来自数据集行 存储过程 USE GO Object StoredProcedure
  • R 中的 diag() 函数

    有没有办法使用diag 矩阵中的函数而不使用内置函数或迭代 M lt matrix 1 9 ncol 3 make a matrix q5b lt function M function 我知道M 1 1 M 2 2 and M 3 3 会
  • 如何在没有库函数的情况下将字符串解析为整数?

    最近我在一次采访中被问到这个问题 如何在不使用任何库函数且不考虑语言的情况下将 12345 形式的字符串解析为其整数表示形式 12345 我想到了两个答案 但面试官说还有第三个 这是我的两个解决方案 解决方案 1 保留一本映射 1 gt 1
  • 如何相对于鼠标位置旋转图像?

    我正在尝试做这样的效果 http metatroid com articles在页面顶部 但我无法仅使用他们给出的代码来旋转它 var img image if img length gt 0 var offset img offset f
  • 如何告诉 google bot 跳过部分 HTML?

    有很多关于相反情况的信息 当人们尝试在 HTML 中包含内容时 谷歌机器人可以看到这些内容 但用户不可见 就我而言 我需要相反的东西 从谷歌机器人隐藏一些 html 问题是如何 闪存不是答案 也不想使用花哨的 ajax 东西 主要是因为我立
  • 获取 Cocoa 中的当前壁纸

    我正在使用此代码来获取当前壁纸 NSURL imageURL NSWorkspace sharedWorkspace desktopImageURLForScreen NSScreen mainScreen 这工作正常 但是当我将图片文件夹
  • 使用 PrimeFaces 手动添加/加载 jQuery 会导致未捕获的类型错误

    我正在使用 PrimeFaces 3 5 和 JSF 2 0 我想使用 jQuery 插件 因此我将 jQuery 包含在我的 web 应用程序中
  • Python 从子文件夹导入

    我正在尝试对每个学生在单独文件夹中的一些 python 提交进行评分 为此 我想运行一个函数 例如 f 我明白 如果我当前的路径与文件所在的路径相同 我可以简单地执行以下操作 import filename filename f 然而 还有
  • 可以推荐 .NET 的 ZedGraph 图表库吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我正在为我的公司做一个项目 在研究股票市场的过程中 我需要将一些不同类型和平均复杂度的图表集成到C 中 我在互联网上找到了这个免费图书馆 ZedGraph 如果您遇到过它 您会推荐使
  • 使用 @font-face 并在当前 HTML 页面中嵌入 SVG 字体

    我有一个想要分发的独立 HTML 文档 没有任何外部依赖项 我在本文档中使用了非标准字体 只有我的部分用户会安装该字体 对于那些没有安装该字体的用户 我在顶部的嵌入 SVG 文档中包含了该字体的副本 在此示例中我使用的是单字形字体 真实文档
  • 计算 numpy 数组中一行中重复元素的数量

    我正在寻找一种快速方法来执行以下操作 假设我有一个数组 X np array 1 1 1 2 2 2 2 2 3 3 1 1 0 0 0 5 我不是在寻找元素的简单频率 而是在寻找连续的频率 所以第一个 1 重复 3 次 比 2 重复 5
  • Word 2016 中的导航窗格:强制折叠标题视图的 VBA 代码

    我正在尝试编写一个在打开 docx 文档时运行的 VBA 宏 我希望它强制显示导航窗格 然后强制所有标题 任何级别 以折叠模式显示 我正在尝试使用宏记录器获取折叠命令的代码 当我录制宏时 我所拥有的只是 ActiveWindow Docum
  • 类型错误:预期的字符串或缓冲区

    我有这个简单的代码 import re sys f open findallEX txt r lines f readlines match re findall A Z lines print match 我不知道为什么我会收到错误 预期
  • Winforms(.NET Core 3)是否支持所有.NET Framework控件

    我们刚刚迁移到 NET 正在尝试使用 C NET 重新创建一个旧项目 我们听说 NET Core 是新项目的最佳选择 我们对此使用 WinForms 非常感兴趣 所以我一直在尝试 Visual Studio 2019 预览版 16 5 0
  • Gradle:排除依赖项的包

    是否可以排除一个package来自 Android Gradle 依赖项 因此它不会最终出现在 APK 中 As dependencies compile com facebook android facebook android sdk
  • EmptyDataTemplate 和 EmptyDataText 在 GridView 中不起作用

    我似乎也无法得到EmptyDataTemplate or EmptyDataText of a GridView上班 我正在获取GridViewde codebehind 中的内容并使用 using 附加它们DataBind 我试过让它们作
  • Android 共享首选项的默认值

    我正在尝试了解 Android 的 SharedPreferences 我是初学者 并且对此了解不多 我为我的应用程序首选项实现了这个课程 public class Preferences public static final Strin
  • 数组获取比其他值大的最小值

    我有以下数组 float arr 0 0 1f 0 0 1f 0 0 2f 选择大于的最小值的最优雅的方法是什么0或者比其他值大 我尝试过使用Min and Select From OrderBy First 但直到现在还没有运气 使用LI
  • linux perf record:计数(-c)和频率(-F)选项之间的差异

    我试图了解 c 和 F 选项性能记录确实如此 但我无法解释我所看到的 我正在运行这些命令 perf record a F