On Thu, Oct 13, 2011 at 2:36 PM, V.Ravikumar <[email protected]>wrote:
> > > On Thu, Oct 13, 2011 at 2:12 PM, Jeff Donner <[email protected]>wrote: > >> On Thu, Oct 13, 2011 at 1:26 AM, V.Ravikumar >> <[email protected]> wrote: >> > I've a daemon process and I'm allocating heap memory for big character >> > buffers using malloc/free. >> > Each can take 5MB. >> > >> > Though I freed/deleted memory allocated for the buffers, the increased >> > memory during the allocation time is not re-claiming back.This I >> observed >> > using top command. >> >> Yes, I think it's glibc - it may keep your memory, with the idea that >> you'll request it again soon anyway. >> > If this is the case then memory should not keep on increase albeit how > long process may run. right? > > _______________________________________________ > Kernelnewbies mailing list > [email protected] > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies > > Hi Ravi, When you ask for a memory block, usually by using malloc(), you're asking the runtime C library whether a preallocated block is available. This block's size must *at least* equal the user request. If there is already a memory block available, malloc() will assign this block to the user and mark it as "used." Otherwise, malloc() must allocate more memory by extending the heap. All requested blocks go in an area called the *heap. Reference to an article by Mulayadi Santosa :- http://linuxdevcenter.com/pub/a/linux/2006/11/30/linux-out-of-memory.html AWESOME ARTICLE SIR :) *Regards, Rohan Puri
_______________________________________________ Kernelnewbies mailing list [email protected] http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
