linux – 共享内存中的Shared_dirty vs Private_dirty
我有使用共享内存的多进程应用程序.我试图在我的应用程序中检测内存泄漏.我在/ proc / $pid / smap中找到了这个
这是我分配的共享内存.(大小告诉我这是我用mmap分配的内存) 我试图了解内存本身共享的上下文中共享/私有之间的区别.看’s’标志. 如果任何人可以解释Shared_Clean与Private_Clean之间的区别 最佳答案
Clean和Dirty之间的区别是指自从写入内存以来页面是否已写出到后备存储.对于/ dev / zero的映射,页面显然从不写出,因此只读取了干净页面,而写入了脏页面.
对于共享映射,Private和Shared之间的区别在于页面是否仅由您正在检查的进程引用,或者它们是否已被多个进程引用. 总结如下: > Shared_Clean是映射中已被此进程引用的页面,以及至少一个其他进程,但不是由任何进程编写的; 页面可以在写入时从“清理”移动到“脏”,在另一个进程引用它们时从“私有”移动到“共享”. 如果映射真实的磁盘文件,那么当内核写出页面时,页面也可以从Dirty转移到Clean. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |