我需要找出进程分配的内存页数? 每个页面都是4096,进程内存使用情况我在查找正确值时遇到一些问题。当我在gome-system-monitor中查看时,在内存映射下有一些值可供选择。
感谢。
这一点是将内存使用量除以页数并验证页面大小。
答案 0 :(得分:5)
很难确定正确分配的内存数量:有与其他进程(r / o部分库)共享的页面,从未使用brk
和匿名mmap
分配的内存,mmaped文件由于高效的处理算法只触及文件的一小部分等,交换页面,脏页面等待写入磁盘等,所以不能完全从磁盘中取出。
如果您想要处理所有这些复杂性并计算真实的页数,详细信息可在/proc/<pid>/smaps
获得,还有一些工具,例如mem_usage.py
或smem.pl
(容易googlable)把它变成或多或少可用的摘要。
答案 1 :(得分:0)
这将是“Resident Set Size”,假设您的进程不使用swap。
请注意,进程可能会分配更多内存(“虚拟内存大小”),但只要它不写入内存,它就不会由物理内存表示,无论是在RAM中还是在磁盘上。
某些系统工具(如top)为每个进程显示“swap”的巨大价值 - 这当然是完全错误的,值是VMS和RSS之间的差异,很可能是那些未使用但已分配的内存页面。