VSS, RSS, PSS, USS

本文详细解析了VSS(虚拟耗用内存), RSS(实际使用物理内存), PSS(按比例使用的物理内存)和USS(进程独自占用的物理内存)等内存指标的概念和作用。通过了解这些指标,可以更准确地评估程序的真实内存消耗,对于检测内存泄露和优化系统资源管理至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载自”超超Boy“: https://www.cnblogs.com/jycboy/p/5453533.html

 

VSS:Virtual Set Size,虚拟耗用内存

它是一个进程能访问的所有内存空间地址的大小。这个大小包含了一些没有驻留在RAM中的内存,就像mallocs已经被分配,但还没有写入。

VSS很少被用来测量程序的实际使用内存。

RSS:Resident Set Size,实际使用物理内存

RSS是一个进程在RAM中实际持有的内存大小。

RSS可能会产生误导,因为它包含了所有该进程使用的共享库所占用的内存,一个被加载到内存中的共享库可能有很多进程会使用它。RSS不是单个进程使用内存量的精确表示。

PSS:Proportional Set Size,按比例使用的物理内存

它与RSS不同,它会按比例分配共享库所占用的内存。
例如,如果有三个进程共享一个占30页内存控件的共享库,每个进程在计算PSS的时候,只会计算10页。
PSS是一个非常有用的数值,如果系统中所有的进程的PSS相加,所得和即为系统占用内存的总和。当一个进程被杀死后,它所占用的共享库内存将会被其他仍然使用该共享库的进程所分担。在这种方式下,PSS也会带来误导,因为当一个进程被杀后,PSS并不代表系统回收的内存大小。

USS:Unique Set Size,进程独自占用的物理内存

这部分内存完全是该进程独享的。

USS是一个非常有用的数值,因为它表明了运行一个特定进程所需的真正内存成本。当一个进程被杀死,USS就是所有系统回收的内存。USS是用来检查进程中是否有内存泄露的最好选择。

 

(完)