在Mac OS X上,vm_allocate()
允许创建可清除的内存区域。当检测到内存压力时,内核可以在任何时候(该区域锁定时除外)回收该区域。这对于缓存数据等很有用。
我想知道Linux(内核2.6)上是否存在类似的机制。 Google搜索使我获得了一些有关Android的信息,讨论了可清除的共享内存分配,但是我没有看到关于在普通Linux上实际执行此操作的API的任何讨论。查阅mmap
,shmat
等手册页时,没有显示用于设置可清除区域的标志。 Linux上可以使用此功能吗?
在Android上有关此功能的说明在这里:
MemoryFile Reference
MemoryFile Sample
谢谢!
最佳答案
2.6.39-rc1中有类似的系统。它称为“超验内存”:
更新:Wikipedia中也有缩写:https://en.wikipedia.org/wiki/Transcendent_memory