C - 缓存线和处理性能?

时间:2014-10-28 10:32:07

标签: c performance caching process

上下文

我正在进行内存缓存的一些试验。阅读了很多论文。

问题不在于如何为每个进程制作缓存友好代码,我几乎得到了它。

我主要担心的是:当数百个正在运行的进程进入L1缓存时,缓存将如何表现?

由于L1大小很少,我是否应该理解将会有大量的缓存驱逐会降低其他进程的速度,因为所有进程都会争夺L1缓存? 在具有64字节高速缓存行的cpu和具有64位字长的64k l1高速缓存中。

这是我不明白的一点。

编辑:

每个核心数百个

1 个答案:

答案 0 :(得分:0)

首先,您可能会使用多核CPU。这意味着每个核心的进程数量要少得多。现代操作系统也试图让核心和流程保持一定的联系。

但是说,当你的程序被换掉时,你确实失去了L1缓存。坚持下去甚至没有意义。您的地址0x04000000与另一个进程中的相同地址的内容不同。它们是虚拟地址。