繁体   English   中英

LBR vs DWARF vs fp 的性能记录选择有什么作用?

[英]What do the perf record choices of LBR vs DWARF vs fp do?

当我使用perf record在我的代码,我找了三个选项--call-graph选项: lbr (最后一个分支记录), dwarffp

这些有什么区别?

选项--call-graph指的是调用图/调用链的集合,即样本的函数堆栈。

默认值fp使用帧指针 这非常有效,但可能不可靠,特别是对于优化代码。 通过显式使用-fno-omit-frame-pointer ,您可以确保这可用于您的代码。 然而,图书馆的结果可能会有所不同。

使用dwarfperf实际上收集和存储堆栈内存本身的一部分,并通过后处理展开它。 这可能非常消耗资源,并且堆栈深度可能有限。 默认堆栈内存块为 8 kiB,但可以配置。

lbr代表最后一个分支记录 这是 Intel CPU 支持的硬件机制。 这可能会以便携性为代价提供最佳性能。 lbr也仅限于用户空间功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM