Stefan Majewsky Asked: 2017-11-23 12:01:04 +0800 CST2017-11-23 12:01:04 +0800 CST 2017-11-23 12:01:04 +0800 CST 进程是否可以分配高速缓存,以便内核在必要时可以占用它? 772 我专门询问Linux,但显然,适用于一般Unix(即POSIX或类似)的答案会更好。 Linux 使用空闲内存(即尚未分配给进程的内存)来缓存文件系统元数据(可能还有其他内容)。当进程请求额外的内存时,这些缓存会缩小以腾出空间。 我的问题:有没有一种方法可以让应用程序分配仅用作缓存的内存?也就是说,当可用内存不足并且其他进程的内存分配无法提供服务时,内核被允许以某种方式控制该内存区域,从而进行分配。 memory cache 1 个回答 Voted Best Answer Stephen Kitt 2017-11-23T12:09:59+08:002017-11-23T12:09:59+08:00 您也许可以为此使用madvise(2)'s MADV_FREE— 它将页面标记为可回收,但不一定立即删除它们,并且可以读回数据。如果你得到全零(每页),你就会知道页面已经消失了。
您也许可以为此使用
madvise(2)
'sMADV_FREE
— 它将页面标记为可回收,但不一定立即删除它们,并且可以读回数据。如果你得到全零(每页),你就会知道页面已经消失了。