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.