callgrind 到底收集什么

发布于 2024-09-25 21:38:33 字数 51 浏览 6 评论 0原文

是采样还是记录每条执行的指令?

它只是捕获正在执行的函数还是还具有行号?

Is it sampling or is it recording every instruction executed?

Does it just capture the executing function or does it also have the line number?

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

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

发布评论

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

评论(1

影子是时光的心 2024-10-02 21:38:33

摘自官方文档文章

Cachegrind 收集平面配置文件数据:事件计数(数据读取、缓存未命中等)直接归因于它们发生的函数。这种成本归因机制称为自归因或独占归因。

Callgrind 通过跨函数调用边界传播成本来扩展此功能。如果函数 foo 调用 bar,则 bar 的成本将添加到 foo 的成本中。当应用于整个程序时,这构建了所谓的包含成本的图景,即每个函数的成本包括它直接或间接调用的所有函数的成本。

Taken from the official documentation article:

Cachegrind collects flat profile data: event counts (data reads, cache misses, etc.) are attributed directly to the function they occurred in. This cost attribution mechanism is called self or exclusive attribution.

Callgrind extends this functionality by propagating costs across function call boundaries. If function foo calls bar, the costs from bar are added into foo's costs. When applied to the program as a whole, this builds up a picture of so called inclusive costs, that is, where the cost of each function includes the costs of all functions it called, directly or indirectly.

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