我在 AIX 6.1 上运行此代码
while(true)
{
int a = rand(); //generate a random integer value
void* test = malloc(a*a); //allocate large chunk of memory block
usleep(3000000); //sleep for 3 sec
free(test); // release memory block
}
使用 MALLOCTYPE=buckets
我的观察是
进程的驻留集大小(实内存)和数据段大小不断增加。这是通过命令 ps v 检查的PIDtopas 中显示的进程 pg sp 值正在缓慢增加。
有人可以证明这种行为的合理性吗?
在空闲时,内存不会释放给 AIX 操作系统,而是保留以供重用。使用 MALLOCOPTIONS=disclaim,free 将内存释放回 AIX 操作系统,并且内存利用率不会增加。但使用 MALLOCOPTIONS=disclaim 时,CPU 利用率几乎提高了 2-3 倍。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)