top 命令中的VIRT,RES,SHR ,MEM区别

本文深入解析了Linux系统中进程的VIRT(虚拟地址空间大小)、RES(常驻内存大小)和SHR(可共享的虚拟地址空间)三个关键内存指标的概念及其相互关系。VIRT涵盖了进程所有可访问的空间,RES反映了实际占用的物理内存,而SHR则指示了VIRT中可被多个进程共享的部分。

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

VIRT 表示进程的虚拟(地址)空间大小,其包含进程实际使用的大小(申请的堆栈), 使用mmap映射的大小,包括外设RAM, 还有映射到本进程的文件(例如动态库),还有进程间的共享内存。所以VIRT 表示的是当前这个进程能够访问到的所有空间大小

RES 表示进程的常驻内存大小,准确表示当前有多少物理内存被这个进程消费,这个和MEM是对应的, 这个大小永远要比VIRT小,因为程序大部分使用到c库

SHR 表示多少VIRT 实际可以共享的(包括内存和动态库),举例动态库,SHR的值不总代表整个库都是常驻内存的,因为有些程序使用到c库的部分函数,但整个库是被映射到进程的,并且计算到VIRT和SHR,但是只有该库的一部分被使用到,即被装载并记入到RES

转载于:https://www.cnblogs.com/hustcpp/p/11097646.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值