top | item 8899454

(no title)

thinkbohemian | 11 years ago

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

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:

    $ 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.

discuss

order

gnufied|11 years ago

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).

gnufied|11 years ago

Sorry for replying here again. So yeah - we plan to report RSS memory as well, but we obviously don't want to shell out.

But - we can do this in C though via the rbkit library. A quick google search returns something like - http://nadeausoftware.com/articles/2012/07/c_c_tip_how_get_p...

Happy to merge a PR that reports this data to the desktop app (from then on it is trivial to actually display or plot it on desktop app).