[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

How to monitor memory consumed by a method ?

Paganoni

3/26/2009 6:42:00 PM

Hello, I've written a library that handle csv conversion...
Files are big, themselves related and the conversion rules needs several
hashes.
Those data will grow up month after month, so I would like to know how
many memory this import method can consume.

The only idea I had is launching the linux utility pmap before and after
the method.

Is there any other solution ?

Thanks
2 Answers

Peter Zotov

3/26/2009 6:58:00 PM

0

Quoting Paganoni <noway@fakenullvoid.com>:

> Hello, I've written a library that handle csv conversion...
> Files are big, themselves related and the conversion rules needs
> several hashes.
> Those data will grow up month after month, so I would like to know
> how many memory this import method can consume.
>
> The only idea I had is launching the linux utility pmap before and
> after the method.
>
> Is there any other solution ?

Try doing GC.disable before calling method and then ps aux, for
example. I think this is simplier.

WBR, Peter Zotov

Robert Klemme

3/27/2009 4:01:00 PM

0

2009/3/26 Peter Zotov <whitequark@whitequark.ru>:
> Quoting Paganoni <noway@fakenullvoid.com>:
>
>> Hello, I've written a library that handle csv conversion...
>> Files are big, themselves related and the conversion rules needs several
>> hashes.
>> Those data will grow up month after month, so I would like to know how
>> many memory this import method can consume.
>>
>> The only idea I had is launching the linux utility pmap before and after
>> the method.
>>
>> Is there any other solution ?
>
> Try doing GC.disable before calling method and then ps aux, for example. I
> think this is simplier.

That way you will see how much memory the process uses up but not, how
much of that must be attributed to the code in the method in question.
Note that Ruby may allocate memory from the OS in larger chunks in
order to prevent too frequent malloc calls and fragmentation. I am
not sure how helpful that is for the OP's problem.

Cheers

robert

--
remember.guy do |as, often| as.you_can - without end