“记忆是负责的”到底是什么意思?

“记忆是负责的”到底是什么意思?

我理解“占用内存”是指确保始终提交的内存,这意味着:VMA 的每个页面都在 RAM 或交换中,因此必须分配每个页面。

但是,如果 I cat /proc/self/smaps,我可以看到 具有[heap]标志ac(我已从输出中省略了不相关的字段):

<addr> rw-p 00000000 00:00 0                          [heap]
Size:                132 kB
Rss:                   8 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         8 kB
Referenced:            8 kB
Anonymous:             8 kB
Swap:                  0 kB
THPeligible:    0
VmFlags: rd wr mr mw me ac sd

然而,VMA 的大小为 132 kB,但只有 8kb 是常驻的,因此还有 124kB 尚未提交。

ac在这种情况下意味着什么?上面说man procac意思是“该地区负责”,但我真的不知道是什么意思。

答案1

我相信“ac”映射的 VMA 正在计入 OOM 杀手权重。例如,glibc 堆栈保护没有用 ac 标记,因此它们不算数。

相关内容