The memory allocator is linked into your program, usually from glibc on Linux. In general it will hold on to all memory allocated to the process, even when freed, and satisify future requests from that pool. The operating system will only try to reclaim allocated but unused memory from processes if it needs to satisfy another request and cannot. In your case, the memory released by closing a tab should be used when you open the next. The precise dynamics of this are driven by exactly how your program allocates and deallocates memory.
Chrome almost certainly has a customised/optimised memory allocator that deliberately manages the interaction with the operating system's free list by preallocating memory into the process in large chunks. You can provide your own memory allocator but it is usually unnecessary.
See
http://stackoverflow.com/questions/1...-get-reclaimed
http://en.m.wikipedia.org/wiki/Sbrk
Bookmarks