程序加载后的RAM使用情况 - 与TOP统计数据不匹配

时间:2017-07-28 10:34:13

标签: linux gcc ram

我预计在运行程序后,top实用程序将显示我的程序使用的内存(VIRT列)等于或大于磁盘上的大小。当结果不同时,我感到很惊讶 - 光盘上的文件大小比前面显示的大。你能解释一下我的期望中有什么问题吗? 附:应用程序是使用gcc本地构建的。

1 个答案:

答案 0 :(得分:1)

运行时,并非可执行文件的所有部分都会映射到内存中。

如果使用readelf -WS <executable>检查可执行文件(假设是elf可执行格式),则可以看到文件部分列表。只有标记A (alloc)的部分才会被加载。

例如,以.debug开头的部分不会被映射,除非它在调试器下运行,并且这些部分通常是最大的。