sma*_*cke 2 c unix search mmap
如果没有使用mmap(),似乎应该有一种方法可以给某些文件"优先级",这样它们被换出的唯一时间就是试图引入的页面错误,例如,执行代码或内存是malloc()'d'通过一些过程,但从来没有其他文件.人们可以想到这可能有用的情况.考虑搜索引擎,它应该将其索引文件保存在缓存中,但可以同时写入新文件(不用于搜索).
mmap()
malloc()
Die*_*Epp 6
有几种方法.
最好的方法是madvise(),它允许您通知内核很快就需要特定范围的内存,这使它优先于其他内存.您也可以使用它来表示不会很快需要特定范围,因此应该尽快换出它.
madvise()
黑客方式是mlock(),它强制一系列内存留在RAM中.这通常不是一个好主意,只应在特殊情况下使用.最常见的情况是将密码存储在RAM中,以便在关闭计算机电源后无法从交换文件中恢复密码.我不会mlock()用于性能调整,除非我已经用尽其他选项.
mlock()
最糟糕的方式是不断戳记忆,迫使它保持新鲜感.
归档时间:
11 年,7 月 前
查看次数:
81 次
最近记录: