关于linux的内存概念 40
先介绍几个基本概念:SIZE:进程使用的地址空间,如果进程映射了100M的内存,进程的地址空间将报告为100M内存.事实上,这个大小不是一个程序实际使用的内存数.RSS:...
先介绍几个基本概念:
SIZE: 进程使用的地址空间, 如果进程映射了100M的内存, 进程的地址空间将报告为100M内存. 事实上, 这个大小不是一个程序实际使用的内存数.
RSS: "Resident Set Size", 实际驻留"在内存中"的内存数. 不包括已经交换出去的代码. 举一个例子: 如果你有一个程序使用了100K内存, 操作系统交换出40K内存, 那么RSS为60K. RSS还包括了与其它进程共享的内存区域. 这些区域通常用于libc库等.
SHARE: RSS中与其它进程共享的内存部分大小.
VMSIZE: 一个进程占用的总的地址空间大小. 它包括了没有映射到内存中的页面.
Private RSS: 映射到内存中的页面, 这些页面仅由进程单独使用. 这也是我们最关心地方: 进程实际占用的内存数.
以上是别人给的信息,以下是我的问题:
交换出去的代码和没有映射到内存的代码有什么区别
实际使用的内存数和驻留在内存中的内存数有什么区别 展开
SIZE: 进程使用的地址空间, 如果进程映射了100M的内存, 进程的地址空间将报告为100M内存. 事实上, 这个大小不是一个程序实际使用的内存数.
RSS: "Resident Set Size", 实际驻留"在内存中"的内存数. 不包括已经交换出去的代码. 举一个例子: 如果你有一个程序使用了100K内存, 操作系统交换出40K内存, 那么RSS为60K. RSS还包括了与其它进程共享的内存区域. 这些区域通常用于libc库等.
SHARE: RSS中与其它进程共享的内存部分大小.
VMSIZE: 一个进程占用的总的地址空间大小. 它包括了没有映射到内存中的页面.
Private RSS: 映射到内存中的页面, 这些页面仅由进程单独使用. 这也是我们最关心地方: 进程实际占用的内存数.
以上是别人给的信息,以下是我的问题:
交换出去的代码和没有映射到内存的代码有什么区别
实际使用的内存数和驻留在内存中的内存数有什么区别 展开
2个回答
展开全部
1:“交换出去的代码”物理内存不够或系统需要把与用户空间建立了映射关系的物理页面的交出去。
“没有映射到内存的代码”任务还没有用到呢。
系统级别的一般常驻。
2:也不很懂,感觉“实际使用的内存数”:正在被用着,没被换出映射到内存中的页面,一个进程独享的部分。
“驻留在内存中的内存数”:还包括了该进程用到的一些lib库的共享部分。
“没有映射到内存的代码”任务还没有用到呢。
系统级别的一般常驻。
2:也不很懂,感觉“实际使用的内存数”:正在被用着,没被换出映射到内存中的页面,一个进程独享的部分。
“驻留在内存中的内存数”:还包括了该进程用到的一些lib库的共享部分。
更多追问追答
追问
那交换出去的swaps算作虚拟内存吗
为什么linux下的虚拟内存是swap+res的
为什么这个虚拟内存的概念会包括res?
追答
1:个人认为是。系统将部分内容 交换到了硬盘上的虚拟存储空间。
2、3:不清楚;不认为单纯+的关系。
感觉linux下虚拟内存指swap分区。
RES:resident memory usage。这个值就是该应用程序真的使用的内存,一是有些东西可能放在交换盘上了(SWAP),二是有些内存可能是共享的。
以上参考,非专家解答哈。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询