在Mac OS X上,vm_allocate()允许创建可清除的内存区域。当检测到内存压力时,内核可以在任何时候(该区域锁定时除外)回收该区域。这对于缓存数据等很有用。

我想知道Linux(内核2.6)上是否存在类似的机制。 Google搜索使我获得了一些有关Android的信息,讨论了可清除的共享内存分配,但是我没有看到关于在普通Linux上实际执行此操作的API的任何讨论。查阅mmapshmat等手册页时,没有显示用于设置可清除区域的标志。 Linux上可以使用此功能吗?

在Android上有关此功能的说明在这里:

MemoryFile Reference

MemoryFile Sample

谢谢!

最佳答案

2.6.39-rc1中有类似的系统。它称为“超验内存”:

  • Transcendent memory, 2009
  • Transcendent memory in a nutshell, 2011
  • 2011年的幻灯片:Transcendent Memoryand Friends, TmemNotVirt-Linuxcon2011-Final.pdf(还列出了一些类似的术语)
  • oss.oracle中的
  • Api规范:Transcendent Memory Interface SpecificationVersion 0.0.1 - 081202

  • 更新:Wikipedia中也有缩写:https://en.wikipedia.org/wiki/Transcendent_memory

    10-08 08:11