In article <dNwpj3Pr+DNDFws$@objmedia.demon.co.uk>,
 Stephen Kellett <snail / objmedia.demon.co.uk> wrote:

> In message <20050923164415.41137.qmail / web36114.mail.mud.yahoo.com>, 
> Eric Mahurin <eric_mahurin / yahoo.com> writes

> >but you said it is windows only.
> 
> It is written in C++ and assembly. It is impossible to do low level 
> hooking of the type required to write this software in anything other 
> than similar languages. You could not write these software tools in 
> Ruby, Python, Java, Lua, etc.

None of the following is in any way a slight on what you have done - it 
seems to be the only way _to_ do it with the current state of Ruby.

Java has a GC system that can track objects, return sizes, and all sorts 
of groovy stuff, and communicate it over a socket to an external 
profiler or debugger.  Ruby, as best as I can read it, does not have 
such hooks built in, so you have to grope the native memory model.

You can write such software tools in Java for Java. You will not be able 
to write them in Ruby for Ruby, until such hooks are added into the Ruby 
runtime.

I, for one, would like to see such hooks added, as I believe a lack of 
memory profiling tools (built in at the lowest levels) is one of the 
bigger things in the way of Ruby scaling.  If a webapp is going to run 
for months at a time, it really helps to be able to introspect long 
lived and large objects.  (Some of my Java webapps have over a year of 
uptime, possible because we did that kind of memory leak testing.  I 
would like to be able to do the same with Ruby on Rails.)

Scott

-- 
Scott Ellsworth
scott / alodar.nospam.com
Java and database consulting for the life sciences