On Jul 24, 2009, at 5:50, "Daniel Berger" <djberg96 / gmail.com> wrote:

>
>
>> -----Original Message-----
>> From: Gennady Bystritsky [mailto:Gennady.Bystritsky / quest.com]
>> Sent: Friday, July 24, 2009 2:28 AM
>> To: ruby-talk ML
>> Subject: [C/Linux] How to get amount of allocated memory from  
>> within a
>> process (heap size)
>>
>> What would be a good way to determine the current heap size (VSZ)  
>> for a
>> process on Linux?
>>
>> I always used sbrk(0) for that, which used to return the top of the
>> heap. However recently, to my dismay, I discovered that it does not
>> work on Linux -- I successfully malloc()-ed 1GB, could confirm it  
>> with
>> "ps -o pid,vsz,args", and yet sbrk(0) always returns the same value  
>> as
>> right in the beginning.
>>
>> As a work around, I have to open /proc/<pid>/stat and read out the  
>> 23d
>> field from there. However it is heavy and ugly, and I have a feeling
>> that such a thing should be done in a more elegant way.
>>
>> Please help. Any suggestions will be greatly appreciated. I even  
>> tried
>> to play with mallinfo(), however could not figure out how to  
>> interpret
>> results.
>
> gem install sys-proctable
>
> Regards,
>
> Dan

Daniel, thanks for your suggestion. I looked how you do it on Linux,  
and see that it is exactly how I described in my workaround - via / 
proc/fd/stat. This works, however I am looking for some lighter  
solution available from a process itself. Like sbrk(0), which  
unfortunatelly is useless on Linux :-(

Thanks anyways, I will keep looking.

Gennady.