gpt4 book ai didi

c - 是否可以对二进制文件中的某些代码片段而不是整个二进制文件使用 vtune?

转载 作者:太空狗 更新时间:2023-10-29 11:27:42 26 4
gpt4 key购买 nike

我正在将小型库的使用添加到现有的大型软件中,并希望分析(在查找器中的详细信息,而不仅仅是输入和输出 rdtsc() 或 gettimeofday 调用)小型库的开销及其属性。使用 rdtsc() 之类的东西,我可以了解调用我的库函数的延迟,但我无法进行延迟归因,除非我还能够查看分支是否未被很好地预测,缓存是否正常工作等。我研究了 PAPI,就像我想象的那样,在更大的二进制文件的上下文中查看某些硬件事件进出我的库中的例程,但似乎我需要一个特定的内核模块才能让 PAPI 为我工作(Linux 2.6. 18 && Intel Xeon 5570)...有专门针对英特尔处理器的 Vtune,但它似乎可以分析整个二进制文件的性能,而不是特定的代码片段(对我的库的 3-4 次调用)。

有没有一种方法可以让我使用 Vtune 来实现我的目标,或者有什么方法可以让我访问这些计数器而无需修补我的内核?

最佳答案

Matias 是对的 - 您可以开始分析暂停(VTune 中的“开始暂停”),然后在您的程序中使用 VTune API 中的 __itt_pause/__itt_resume API 将数据收集限制在感兴趣的代码区域。

您可能还想在项目属性中将“目标持续时间类型”设置为“不到一分钟”——这会使采样更细粒度(10 KHz 而不是默认的 1 KHz 频率)。或者手动调整要收集的事件列表中的采样后值。当您想要分析特定的事物(例如预测错误的分支)时,后者通常更有用。

关于c - 是否可以对二进制文件中的某些代码片段而不是整个二进制文件使用 vtune?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11750297/

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