|
View:
New views
1 Messages
—
Rating Filter:
Alert me
|
|
|
MBeans added...some metricsI added over the past couple days a few MBeans to allow monitoring some
of JRuby's internals. I also added a --manage flag that turns on the remote bits of JMX monitoring so you can connect to the process using jconsole. All fun stuff. So here's a few findings from running Rails in normal mode with a bunch of ab requests (i.e. not handling sessions in any reasonable way): (this is all jitted...I'll try a +C run after I add monitoring to on-load compilation.) dev mode, after startup: - 69 methods have jitted - average jitted code size is 3936 bytes - average compile time is 2300 microseconds (need to doublecheck this metric...) - all methods that attempted to JIT have succeeded. - 11858 call sites have inline cached - module inclusion has triggered 38 removals, for a total of 88 removals (very good considering 11858 caches) after one request to static main page + dynamic info page: - 75 methods have jitted - average jitted code size is 3878 bytes - average compile time is 2171 microseconds - all methods that attempted to JIT have succeeded - 14191 call sites have inline cached - module inclusion has triggered 38 removals, for a total of 89 removals after 51 requests to the static page and 51 requests to the dynamic page - 461 methods have jitted (3 reused, which means at least 3 methods that would otherwise have jitted in a *single* app had identical ASTs) - average jitted code size is 4024 (1.87MB total byte[], which translates to somewhat less actual memory used) - average compile time is 1236microseconds - all 464 methods that attempted to jit have succeeded (3 reusing code already jitted) - 30941 call sites have inline cached, same module/removal statistics So a few interesting details from this.. - up to this point we're only using about 10% of the current "max" number of JITted methods. Granted, this is a very simple request, so maybe that's a high percentage. - jitted code size isn't too bad considering the number. An LRU that ages out old, unused methods might be even better. - 30941 call sites have attempted to cache, but we have no measurement on how many of those call sites have given up because of too-polymorphic calls or how many of them might be stepping on each other forcing a re-cache. Currently the call sites are set to give up after 50 cache misses. I'll try to add some monitoring for call site caches soon. So busy. Interesting though. - Charlie --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email |
| Free embeddable forum powered by Nabble | Forum Help |