gpt4 book ai didi

linux - 有没有一种方法可以使用不包含嵌套函数持续时间的 trace-cmd 输出函数持续时间?

转载 作者:太空狗 更新时间:2023-10-29 12:40:54 26 4
gpt4 key购买 nike

我正在使用 trace-cmd 跟踪负载生成器。这是我的 trace-cmd 报告的输出片段:

     loadgen-2682  [003]   105.979473: funcgraph_entry:                   |              select_task_rq_fair() {
loadgen-2682 [003] 105.979473: funcgraph_entry: | select_idle_sibling() {
loadgen-2682 [003] 105.979473: funcgraph_entry: 0.071 us | idle_cpu();
loadgen-2682 [003] 105.979474: funcgraph_entry: 0.111 us | idle_cpu();
loadgen-2682 [003] 105.979474: funcgraph_entry: 0.056 us | idle_cpu();
loadgen-2682 [003] 105.979475: funcgraph_entry: 0.056 us | idle_cpu();
loadgen-2682 [003] 105.979475: funcgraph_exit: 2.324 us | }
loadgen-2682 [003] 105.979476: funcgraph_exit: 2.940 us | }
loadgen-2682 [003] 105.979476: funcgraph_entry: | set_task_cpu() {
loadgen-2682 [003] 105.979476: funcgraph_entry: | migrate_task_rq_fair() {
loadgen-2682 [003] 105.979476: funcgraph_entry: 0.080 us | remove_entity_load_avg();
loadgen-2682 [003] 105.979477: funcgraph_exit: 0.537 us | }
loadgen-2682 [003] 105.979477: funcgraph_entry: 0.042 us | set_task_rq_fair();
loadgen-2682 [003] 105.979478: funcgraph_exit: 1.463 us | }

所有函数的持续时间看起来很可疑,好像它们包括嵌套函数调用所花费的时间。例如,我相信 select_idle_sibling() 的 2.324 us 持续时间包括在 idle_cpu() 调用中花费的 .294 us(总计)。同样,我相信 select_task_rq_fair() 包含 select_idle_sibling() 持续时间。

我想问的是,在 trace-cmd 中是否有一种方法可以关闭它,这样 select_task_rq_fair() 就会显示它的持续时间,不包括它调用的任何函数;即 select_task_rq_fair() 将显示 0.616 us(2.940 us - 2.324 us)的持续时间。我无法在 the manpage 中找到此问题的答案。 .

最佳答案

在这个问题上花了一些时间之后,我可以说答案几乎肯定是“不”。如果你想计算一个函数内部花费的时间不包括在任何嵌套函数中花费的时间,你将需要:

  • 一个堆栈,用于推送将具有嵌套调用的 funcgraph_entries(即,没有列出持续时间的 funcgraph_entries),并在看到条目对应的 funcgraph_exit 调用时弹出
  • 一种跟踪嵌套调用持续时间的方法,以便您可以从目标的 funcgraph_exit 行上列出的持续时间中减去它们的总持续时间

这可以通过几种方式完成,但一个简单的类可能类似于:

class FunctionDuration:
def __init__(self, function_name):
name = function_name
nested_call_duration = 0
duration = 0

关于linux - 有没有一种方法可以使用不包含嵌套函数持续时间的 trace-cmd 输出函数持续时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44789486/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com