- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Linux perf
工具(前段时间命名为 perf_events
)有几个内置的通用软件事件。其中最基本的两个是:task-clock
和 cpu_clock
(内部称为 PERF_COUNT_SW_CPU_CLOCK
和 PERF_COUNT_SW_TASK_CLOCK
)。但他们的问题是缺乏描述。
ysdx用户 reports那 man perf_event_open
有简短的描述:
PERF_COUNT_SW_CPU_CLOCK
This reports the CPU clock, a high-resolution per-
CPU timer.
PERF_COUNT_SW_TASK_CLOCK
This reports a clock count specific to the task
that is running.
task-clock
的方式和时间给出权威答案吗?和
cpu-clock
事件被计算?它们与 linux 内核调度程序有什么关系?
task-clock
和
cpu-clock
会给出不同的值吗?我应该使用哪一个?
最佳答案
1) 默认情况下,perf stat
显示 task-clock
,并且不显示 cpu-clock
.因此我们可以告诉 task-clock
预计会更有用。
2) cpu-clock
简直坏掉了,好多年都没修过。最好忽略它。cpu-clock
的目的是的 sleep 1
将显示大约 1 秒。相比之下,task-clock
将显示接近于零。使用 cpu-clock
会很有意义阅读挂钟时间。然后您可以查看 cpu-clock
之间的比率。和 task-clock
.
但是在当前的实现中,cpu-clock
相当于task-clock
.甚至有可能“修复”现有的计数器可能会破坏某些用户空间程序。如果有这样的程序,Linux 可能无法“修复”这个计数器。 Linux 可能需要定义一个新的计数器。
异常(exception):starting with v4.7-rc1 ,在分析一个或多个 CPU 时 - 而不是特定任务 - 例如perf stat -a
. perf stat -a
显示 cpu-clock
而不是 task-clock
.在这种特定情况下,这两个计数器旨在等效。 cpu-clock
的初衷|在这种情况下更有意义。所以对于 perf stat -a
,你可以忽略这个差异,并将其解释为 task-clock
.
如果您编写自己的代码来分析一个或多个 CPU——而不是特定任务——也许遵循 perf stat -a
的实现是最清楚的。 .但是您可能会链接到这个问题,以解释您的代码在做什么:-)。
Subject: Re: perf: some questions about perf software events
From: Peter ZijlstraOn Sat, 2010-11-27 at 14:28 +0100, Franck Bui-Huu wrote:
Peter Zijlstra writes:
On Wed, 2010-11-24 at 12:35 +0100, Franck Bui-Huu wrote:
[...]
Also I'm currently not seeing any real differences between cpu-clock and task-clock events. They both seem to count the time elapsed when the task is running on a CPU. Am I wrong ?
不,弗朗西斯已经注意到了,我可能在添加
多 pmu 的东西,它在我的待办事项 list 上看(弗朗西斯也递给我
一个小补丁),但我一直被其他东西分心:/
好的。
调整他们两个的期限是否有意义?
此外,在创建任务时钟事件时,将 'pid=-1' 传递给
sys_perf_event_open() 真的没有意义,是吗?
与 cpu 时钟和 'pid=n' 相同:无论值,事件度量
cpu 挂钟。
也许只在 API 中提出一个时钟并在内部绑定(bind)它
时钟到 cpu 或任务时钟取决于 pid 或 cpu 参数将
好些了吗?
不,在一个任务上同时计算 cpu 和任务时钟实际上是有意义的
(CPU时钟基本上是挂钟)。
在更肤浅的层面上,perf stat
cpu-clock
的输出可能与task-clock
略有不同性能早于 v4.7-rc1。例如,它可能会为task-clock
打印“CPUs used”。但不适用于cpu-clock
.
关于linux-kernel - Linux 性能事件 : cpu-clock and task-clock - what is the difference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23965363/
这个问题在这里已经有了答案: What specifically are wall-clock-time, user-cpu-time, and system-cpu-time in UNIX? (4
我只是尝试使用 jasmine 在 javascript/coffeescript 中进行单元测试,非常好。 我一直在尝试使用 jasmine.Clock.Mock() 来提前并触发 setTimeo
现在使用 emacs org 模式大约一个月来跟踪我所有的项目和任务。 我全天为所有事件计时,而不仅仅是与工作相关的事件。 我的问题是——我经常忘记打卡参加一项新事件(比如吃午饭)。当我返回并打卡回到
我在看 Clock来自java的类,以便我可以将其作为依赖项注入(inject)以获得更好的可测试性。但是我不明白这两种方法的区别systemUTC和 systemDefaultZone . Inst
当我设置特定日期时,我正在努力测试我的端点。 我不想使用 PowerMock 来模拟静态方法,而是决定更改我的服务的实现并使用 LocalDate.now(Clock clock) 实现来更容易地测试
我有一个员工“上类打卡”表,具有开始时间和结束时间属性。每位员工上下类打卡,表格类似这样: Employee_no Start time End time 16
Linux perf工具(前段时间命名为 perf_events)有几个内置的通用软件事件。其中最基本的两个是:task-clock和 cpu_clock (内部称为 PERF_COUNT_SW_CP
我的方法之一中有以下代码 ZonedDateTime current = Instant.now().atZone(ZoneId.of(AMERICA_NEW_YORK)); 我想在 JUnit 测试
我正在使用 sf::Clock 来控制循环。 我想知道是否允许我使用超过 1 个 sf::Clock,如果允许,是否所有“时钟”都将正常运行并按预期工作在所有操作系统上。 例如: sf::Clock
假设您有一个 (1) Intel/AMD x86-64 位 2 GHz 8 核处理器。 8 个内核中的每一个是否都以完整的 2 GHz 运行,或者每个内核是否以完整的 2 GHz 时钟的一部分运行(例
对于 java 8 下面的代码 1. System.out.println(LocalDateTime.now(Clock.systemDefaultZone())); 2. System.o
我有以下使用Chatterbot第三方库的代码:。当我尝试使用代码时,从Visual Studio收到如下错误:。我安装了以下程序包:。我尝试了使用Python3.9和3.11以及Chatterbot
我有以下使用Chatterbot第三方库的代码:。当我尝试使用代码时,从Visual Studio收到如下错误:。我安装了以下程序包:。我尝试了使用Python3.9和3.11以及Chatterbot
我有以下使用Chatterbot第三方库的代码:。当我尝试使用代码时,从Visual Studio收到如下错误:。我安装了以下程序包:。我尝试了使用Python3.9和3.11以及Chatterbot
我有一个相对简单的要求:我希望我在 KVM 下创建的 CentOS 客户机上的时钟从 VM 的第一次启动就与它们的 CentOS 主机同步。 在它们启动并运行后将它们与 NTP 同步很容易。但是,如果
谁能告诉我如何找到STM32F429的APB1时钟频率?以及如何计算STM32F429的波特率。 P.S...请不要告诉我引用引用手册,因为这些工作已经完成,我想告诉我 APB1 时钟频率的确切值 谢
我在 LAN 上有 5 台服务器,没有 Internet 连接。我需要他们保持时钟同步。 我可以将它们配置为 NTP 对等体,并为其中一个的本地时钟设置较高的层数。这样,其他四个就会与该时钟同步。 我
让我们假设我们有许多系统连接在本地网络中并且没有连接到互联网。确保每个时钟同步的最佳方法是什么?它们不一定要与 UTC 时间同步,但在它们之间保持同步就足够了。 我曾想过通过在其中一个系统中设置 NT
我对 clock() 有疑问在运行 32 位版本的 Debian 6.0.3 的机器上。它似乎总是返回 0。使用 this example program 时,我得到以下输出: Calculating
我正在尝试编写一个程序来比较快速排序和插入排序函数所花费的时间,具体取决于数组中元素的数量。这是我想出的代码: #include #include #include //prototypes o
我是一名优秀的程序员,十分优秀!