需要帮助理解 kcachedgrind 输出

发布于 2024-09-01 09:48:59 字数 490 浏览 4 评论 0原文

我正在使用 valgrind callgrind 在 gtk 上分析程序。然后我使用 kcachedgrind 读取结果。我在这里捕获了 kcachedgrind 的更新屏幕截图: http://i41.tinypic.com/168spk0.jpg 。它说函数 gtk_moz_embed_new() 的成本为“15.61%”。 但我不明白这怎么可能。函数 gtk_moz_embed_new() 实际上只有 1 行:它只是调用 g_object_new()。

GtkWidget *
gtk_moz_embed_new(void)
{
  return GTK_WIDGET(g_object_new(GTK_TYPE_MOZ_EMBED, NULL));
}

您能帮助理解结果或如何使用 kcachedgrind 吗?

谢谢。

I am using valgrind callgrind to profile a program on gtk. And then I use kcachedgrind to read the result. I have captured an update a screenshot of kcachedgrind here: http://i41.tinypic.com/168spk0.jpg. It said the function gtk_moz_embed_new() costed '15.61%'.
But I dont understand how is that possible. the function gtk_moz_embed_new() literally has 1 line: and it is just calling a g_object_new().

GtkWidget *
gtk_moz_embed_new(void)
{
  return GTK_WIDGET(g_object_new(GTK_TYPE_MOZ_EMBED, NULL));
}

Can you please help understanding the result or how to use kcachedgrind.

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

木槿暧夏七纪年 2024-09-08 09:48:59

如果我没记错的话,这应该意味着(或多或少)函数 gtk_moz_embed_new() 在应用程序运行的时间中执行了 15.61%。

您会看到,该函数返回对其他函数(或类或其他函数)的内联调用,这些函数也需要时间来执行。当它们全部完成后,函数 gtk_moz_embed_new() 实际上会返回一个值。出于同样的原因,main() 需要 99% 的时间来执行,它会在执行完其中包含的所有代码后完成执行。

请注意,gtk_moz_embed_new()self 值为 0,这是“独占成本”,这意味着该函数本身并没有真正花费任何时间来执行(它实际上只是一个返回)调用)

但准确地说:

1.1 “包含”和“包含”有什么区别和“自我”?

这些是成本属性
关于某些事件类型的函数。
由于函数可以互相调用,所以
区分成本是有意义的
函数本身(“自我成本”)和
费用包括所有被叫的费用
功能(“包容性成本”)。 '自己'
有时也称为
“独家”费用。

因此,例如对于 main(),您将始终
几乎100%的包容性成本,
而自我成本可以忽略不计
当真正的工作在另一个人身上完成时
功能。

If i remember correctly that should mean (more or less) that function gtk_moz_embed_new() was executing 15.61% of the time the the app was running.

You see, that function returns an inline call to other functions (or classes or whatever) that also take time to execute. When they are all done it's then that the function gtk_moz_embed_new() acutally returns a value. The very same reason it takes main() 99% of the time to execute, it finisesh execution after all included code in it is executed.

Note that self value for the gtk_moz_embed_new() is 0 which is "exclusive cost" meaning that function it self did not really took any time to execute (it's really only a return call)

But to be exact:

1.1 What is the difference between 'Incl.' and 'Self'?

These are cost attributes for
functions regarding some event type.
As functions can call each other, it
makes sense to distinguish the cost of
the function itself ('Self Cost') and
the cost including all called
functions ('Inclusive Cost'). 'Self'
is sometimes also referred to as
'Exclusive' costs.

So e.g. for main(), you will always
have a inclusive cost of almost 100%,
whereas the self cost is neglectable
when the real work is done in another
function.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文