虚拟内存和驻留内存

日期:2019-07-04    作者:杏彩

是一个虚构的内存空间,在程序运行期间需要访问的虚拟内存空间的一部分将被映射到物理内存空间。大虚拟内存空间只能指示在程序运行期间可以访问的空间相对较大,并不意味着物理内存空间也被占用。

通过top命令,我们已经可以看到进程的虚拟空间大小(VIRT),占用的物理内存(RES)以及与其他进程(SHR)共享的内存。

进程的虚拟内存空间的分布,例如堆占用了多少空间,文件映射(mmap)占用了多少空间,以及堆栈占用了多少空间?进程是否将内存交换到交换空间中,如果是,则换出的大小是多少? Mmap(内存映射文件的一种方法)内存中打开了多少页数据文件脏页(脏页)是不是写回磁盘的?在mmap模式下打开的数据文件页面已经在内存中,还有多少页面仍未加载到磁盘上的页面中?

虚拟内存和驻留内存

在smaps文件中,每条记录(如下面的图2所示)表示进程虚拟内存空间的连续区域。从左到右的第一行表示地址范围,权限标识符,映射文件偏移量,设备号,inode和文件路径。有关详细说明,请参阅understanding-linux-proc-id-maps

大小:表示虚拟内存空间中映射区域的大小。 Rss:表示映射区域当前在物理内存中占用的空间大小。 Shared_Clean:与其他进程共享的unrewritten页面的大小。 Shared_Dirty:与其他进程共享的覆盖页面的大小。 Private_Clean:未重写的私有页面的大小。交换:表示由于物理内存不足,非mmap内存(也称为匿名内存,例如由malloc动态分配的内存)交换为交换空间的大小。 Pss:虚拟内存区域用于计算所使用的物理内存量(某些内存将与其他进程共享,例如mmap)。例如,由该区域映射的物理内存部分也由另一个进程映射,并且物理内存的大小为1000 KB,然后该进程分配一半内存,即Pss=500 KB。

上一篇:游戏厂商效仿中国的特殊汽车推广计划引发争议_国内动态-07073行
下一篇:曾经是广东省省会,发展滞后,年GDP仅超过1000亿