This is really really cool. Thanks for posting. I'm especially interested in memory usage right now. I wrote a way to generate load and measure memory impact on your app: https://github.com/schneems/derailed_benchmarks
From `ps` i'm seeing about ~ 200mb RSS usage where rbkit is only showing ~50mb. I wonder what we could do to increase the accuracy here without having to shell out (very slow).
Also as a note if the gem install fails, on a mac I needed to run this:
$ brew install msgpack
$ brew install zeromq
Then it worked fine. Thanks again! Projects like this get me really excited for a future with faster applications and better informed developers.
I think, we have some work to document what those values mean. RES in graph - is not total RSS memory usage, it is memory ruby has allocated on C heap via `malloc` calls.
If you are familiar with Ruby internals, ruby heap can store small sized objects (such as smaller strings, smaller arrays etc) in its own heap, but for larger objects ruby uses `malloc` and the ruby heap itself just keeps a pointer to memory allocated. The RES size in graph is approximately that value.
Total RSS size of ruby process is lot bigger, it is combination of C heap, Ruby heap and other allocations which ruby is not even aware of (such as a C extension using `malloc` calls).
That's the best apart about having a community like this. When a focus/problem gets presented it wields such a massive amount of force/man-hours to attack the problem
This is something we have been working in our free time for last several months. The instrumentation support in Ruby seems to be coming together at last and ko1 (Koichi Sasada) has done lot of work in that regard.
This looks brilliant. I was hoping it worked for my ruby-1.8.7 application though :(
Are there similar applications for versions of ruby lower than ruby-2.1.0?
One potential option is using one of the JRuby 1.7.x releases, which still supports the Ruby 1.8 language level. You'll be able to use all the JVM tools, such as VisualVM, which offer similar functionality.
I think support for Ruby 1.8.7 has ended, so it is very unlikely you will see anything like this written for that version of Ruby. You should seriously consider migrating from that version.
Having said that - As one of the authors of Rbkit - it does not even work on 1.9.x - because instrumentation support we require from Ruby isn't simply there.
Comparing the two, it looks like this app only uses heap size for memory and doesn't take into account memory that isn't being used but hasn't been freed. https://www.dropbox.com/s/679sd83gqlkligk/Screenshot%202015-...
From `ps` i'm seeing about ~ 200mb RSS usage where rbkit is only showing ~50mb. I wonder what we could do to increase the accuracy here without having to shell out (very slow).
Also as a note if the gem install fails, on a mac I needed to run this:
Then it worked fine. Thanks again! Projects like this get me really excited for a future with faster applications and better informed developers.