【发布时间】:2010-10-27 12:07:44
【问题描述】:
我的应用程序中有一堆缓冲区(其中 25 到 30 个),它们相当大 (.5mb) 并且可以同时访问。更糟糕的是,它们中的数据通常只读取一次,并且经常更新(例如每秒 30 次)。有点像非最佳缓存使用的完美风暴。
无论如何,我突然想到,如果我可以将一块内存标记为不可缓存,那就太酷了……理论上,这会在缓存中为其他所有内容留出更多空间。
那么,他们是一种在 Linux 中获取标记为不可缓存的内存块的方法吗?
【问题讨论】:
-
我认为这会损害性能——将所有频繁的更新写入都标记为不可缓存,而不是写入缓存。
-
缓存仅在这种情况下有用,如果写入不是连续的并且多个写入落在同一缓存行上。如果写入是半随机的,并且当再次写入相同的位置时,该位置已从缓存中刷新,则意义不大。
-
@Michael - 在这种情况下,更新应该绕过缓存。