当您调试性能关键代码并查看反汇编时,由于数据缓存未命中而发现瓶颈并不太难:
加载/存储指令往往是通常的瓶颈,这意味着如果你停止程序,它可能会停止接近从某个不可预知的内存地址加载的加载/存储指令。
同样,找到分支错误预测的一种方法是查看是否打破程序通常会将其停在特定跳转附近,然后查看代码以查看跳转是否可预测。
< / LI> 醇>(或者,至少,我试图找到这样的瓶颈。如果我正在寻找错误的症状让我知道..)
其他种缓存未命中的症状是什么?
我做知道它们很少见,但我仍然想知道如果它们出现时如何发现它们。
通过“其他”缓存,我的意思是:
答案 0 :(得分:1)
说完了,如果你坚持使用它,你可以
无法想出一种识别I-Cache未命中的方法,因为它们甚至更早,并且与执行流水线进一步分离,在那里调试器可能会捕获“当前”指令