lkml.org 
[lkml]   [1997]   [Jan]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Memory use: returning freed memory to the pool

> I may be a bit slow witted, but there is something I don't
> understand about memory management: why doesn't the size of my
> process decrease when I free allocated memory ?
>
> To explain, I've included the program below: this allocates 10 Megs
> (roughly), writes to this memory, to make sure it is actually
> there, then frees it, and goes to sleep for 24 hours.
>
> When I run this, and monitor the process size using top, I see that
> the size of the process stays at 10 Megs: the freed memory is not
> returned to the operating system.
[snip]

This is, methinks, a libc problem...malloc() will (when necessary) aquire
a heap of memory w/ a system call, then allocate segments within that
heap; free() marks those sections of the heap "de-allocated", but does not
return it to the OS until the program exits.

There are potential performance hits if free() automatically does a
"hard-release" (correct me if I'm wrong), particularly for
string-intensive and similar applications that are constantly allocating
and freeing substantial amounts of memory.

> - Is there anyway, in which I can force my process to return the
> memory to the operating system, in such a way that Linux can
> recycle this memory ? ( I only need it when starting my process,
> after init I can throw it out).

mallopt() provides a mechanism for "tuning" the behavior of the malloc
function set...of course, my DU4.0 man pages say "it's no longer supported
by us, don't use it", and I can't hit any Linux man pages from here :-P

Adam
--
He feeds on ashes; a deluded mind has led him Adam Bradley, UNCA Senior
astray, and he cannot deliver himself or say, Computer Science
"Is there not a lie in my right hand?" Isaiah 44:20
bradley@cs.unca.edu http://www.cs.unca.edu/~bradley <><


\
 
 \ /
  Last update: 2005-03-22 13:38    [W:0.043 / U:0.524 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site