gpt4 book ai didi

AIX 进程内存随着循环中的 malloc 释放调用而增加

转载 作者:行者123 更新时间:2023-12-02 20:51:45 37 4
gpt4 key购买 nike

我在 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=存储桶我的观察是进程的驻留集大小(实内存)和数据段大小不断增加。这是通过命令 ps v PID 检查的进程topas中显示的pg sp值正在缓慢增加。

有人可以证明这种行为的合理性吗?

最佳答案

在空闲时,内存不会释放给 AIX 操作系统,而是保留以供重用。使用 MALLOCOPTIONS=disclaim,free 将内存释放回 AIX 操作系统,并且内存利用率不会增加。但使用 MALLOCOPTIONS=disclaim 时,CPU 利用率几乎提高了 2-3 倍。

关于AIX 进程内存随着循环中的 malloc 释放调用而增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13294552/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com