繁体   English   中英

分析指令高速缓存未命中

[英]Profiling instruction cache misses

我想为我的代码中的每个非内联函数f()构造的指令缓存惩罚的直方图。 因此,如果我的代码中总共有k个非内联函数,则需要k个独立的直方图。 我想知道是否有任何已知的解决方案。

任何一个特定函数f1()的幼稚方法都是在代码中找到对f1()所有调用,在调用之前记录一个时间戳记值,并在f1()的开始记录一个时间戳记,构造一个差异的直方图。 它需要添加(n + 1)行新代码,其中n是f1()的调用次数。

我基本上想要这个天真的解决方案的可扩展版本。

根据您的操作系统和处理器,有更精确的解决方案可用。 如果您使用的是Linux,请使用perf_events 它为PMU事件提供了一个很好的接口。 您可以使用它来获取icache丢失的准确计数,并在这些事件上采样堆栈快照,以找出icache丢失的发生位置。

暂无
暂无

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

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