当前位置:  开发笔记 > 编程语言 > 正文

prstat输出中SIZE和RSS值的含义

如何解决《prstat输出中SIZE和RSS值的含义》经验,为你挑选了1个好方法。

有人可以清楚地解释我们从Solaris中的prstat获得的SIZE和RSS值的含义吗?

我写了一个测试C++应用程序,它分配内存new[],填充它并释放它delete[].

据我所知,SIZE值应该与进程"保留"了多少虚拟内存有关,即内存"malloced"或"newed".

除非我真的使用它(填充一些值),否则该内存不会在RSS值中总结.但即使我释放内存,RSS也不会下降.

我不明白我能正确分配给这两个值的语义.



1> jlliagre..:

RSS(AFAIK可靠)表示进程使用的物理内存量.使用Solaris默认内存分配器,释放内存对RSS没有任何作用,因为它只是更改了一些指针和值来告诉内存可以自由重用.如果您不再通过再次分配来再次使用该内存,它最终会被分页并且RSS将会丢失.

如果要在释放后立即返回释放的内存,可以使用Solaris mmap分配器,如下所示:

export LD_PRELOAD=libumem.so
export UMEM_OPTIONS=backend=mmap

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有