我刚读完 How to Choose between Hardware and Software Prefetch on 32-Bit Intel® Architecture 并决定我需要为我的用例禁用硬件预取。
特别是以下内容适用于我:
通常,在满足以下所有条件的情况下更喜欢软件控制的预取:存在不规则访问模式,必须预取短数组,并且可以接受对现有应用程序代码的更改。
我找到了一些特别引用Linux的答案(see this SO answer)。但是,出于性能原因,我使用的是FreeBSD。
即使这最终成为一个坏主意,我也希望在没有h / w预取的情况下通过应用程序进行基准测试。