in reply to Re: demonstrate that perl can give back memory to the OS
in thread demonstrate that perl can give back memory to the OS
actually return memory to the OS. This is, in general, not possible. In *nix, once a process is allocated pages, there is no mechanism for giving them back.
I just checked this on linux (ubuntu 8.10 amd64) and can't confirm this statement
#include <sys/types.h> #include <unistd.h> #include <stdlib.h> #include <stdio.h> main() { char *buf; char cmd[1024]; snprintf(cmd, 1024, "ps -o pid,size,vsize h %d", getpid()); system(cmd); buf = malloc( 1024*1024*1024 ); system(cmd); free(buf); system(cmd); return 1; }
And result:
10417 128 3780 10417 1048708 1052360 10417 128 3780
Update: and yes, it uses mmap
|
|---|