Heap memory is not re-claiming.

rohan puri rohan.puri15 at gmail.com
Fri Oct 14 00:58:01 EDT 2011


On Thu, Oct 13, 2011 at 2:36 PM, V.Ravikumar
<ravikumar.vallabhu at gmail.com>wrote:

>
>
> On Thu, Oct 13, 2011 at 2:12 PM, Jeff Donner <jeffrey.donner at gmail.com>wrote:
>
>> On Thu, Oct 13, 2011 at 1:26 AM, V.Ravikumar
>> <ravikumar.vallabhu at gmail.com> 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
> Kernelnewbies at kernelnewbies.org
> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20111014/6f316c0f/attachment.html 


More information about the Kernelnewbies mailing list