new了以后,马上delete,但是用prstat, pmap查看,内存不减少,为什么?
new了以后,马上delete,但是用prstat, pmap查看,内存不减少,为什么?
1、
void f()
{
char * p = new char[1024 * 1024 * 4]; //用prstat,pmap查看,内存增加了4M
sleep(5);
delete [] p; //delete完以后,但是用prstat,pmap查看,内存没有减少
}
2、
main()
{
while (1)
{
f (); //这里虽然死循环,但是内存只涨了一次,4M,以后就没有关系了。
}
}
为什么?
3、
同样的程序我在windows下测试,就没有这个现象:new ---- +4M, delete -------- -4M
分不够再加,如果你在深圳,我请你吃饭