如何关闭windows中缓存的预取?

Posted

技术标签:

【中文标题】如何关闭windows中缓存的预取?【英文标题】:How to close the prefetch of cache in windows? 【发布时间】:2010-03-08 15:31:06 【问题描述】:

在C/C++程序中,如何关闭Windows系统中各个内核的预取?

【问题讨论】:

嗯...这里可能会使用更好的措辞。您的意思是禁用从特定地址预取吗?还有什么?你想完成什么? 【参考方案1】:

有一个 Windows API 调用 FlushInstructionCache()

也许这就是你需要的?它通常由自我修改代码使用,以确保对 RAM 中代码的更改对处理器可见。

【讨论】:

【参考方案2】:

我在一些代码中看到过这个技巧,虽然我不能 100% 确定这个技巧是否是你正在寻找的,但是,代码是这样的

睡眠(0);

通过使用Sleep(0),您正在清除 CPU 指令并导致上下文切换...现在您确实说“针对每个核心”,我认为您不能像您一样明确选择一个核心来执行此操作知道哪个内核正在运行需要关闭缓存预取的代码......

【讨论】:

Sleep() 不保证上下文切换。上下文切换也是一种停止预取的残酷方式。 @Nikolai: Ahhh...k.... 没有问题所以....我不太确定....谢谢您的意见! :)

以上是关于如何关闭windows中缓存的预取?的主要内容,如果未能解决你的问题,请参考以下文章

如何设置 NMS 侦听器容器的预取限制

WinPrefetchView(预取文件查看器)

芹菜中的预取任务是不是被确认?

我在哪里可以获得 OpenJDK(Windows)的预构建 JavaFX 库 [关闭]

Intel Core 2 Duo 的预取

text 常见的预取链接