tag:blogger.com,1999:blog-20975090.post2529660961304795268..comments2024-03-11T10:18:55.852-05:00Comments on Headius: Flat and Graph Profiles for JRuby 1.6Charles Oliver Nutterhttp://www.blogger.com/profile/06400331959739924670noreply@blogger.comBlogger5125tag:blogger.com,1999:blog-20975090.post-12105277374202970712011-01-05T07:28:17.182-06:002011-01-05T07:28:17.182-06:00Hi Charles,
I posted my comment late last night (...Hi Charles,<br /><br />I posted my comment late last night (1 am) with much more emotion than I would have liked. <br /><br />I definitely want to get more JRuby users trying out OpenCore's JRuby-to-Ruby extension especially those high profile sites with high volumes in production which is the target for OpenCore. Somewhat disappointed that this has not materialized when you consider some of these still have performance issues.<br /><br />I would really like to see some standardization of the hooks to help with our maintenance and create more competition in the implementation space. I am more than willing to provide some advice in this area to ensure that the interface is optimal and supports very efficient profiling (i.e. static/dynamic meta/state mgmt across callbacks).<br /><br />I think it is good you finally move away from JIP.<br /><br />Btw the hope for OpenCore was to have it standardized within JSE. I put it forward to IBM, Sun and Oracle. IBM were approachable and view it very favorably. Sun had considered for their Cloud intiative. Talking to the Oracle/JRockit team is like watching paint dry but it could be worse (i.e. talking with the Oracle Enterprise Manager product team).Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-20975090.post-92017108256079160252011-01-04T18:36:46.780-06:002011-01-04T18:36:46.780-06:00William: Of course I know about JXInsight and Open...William: Of course I know about JXInsight and OpenCore, and I didn't mean to imply that there are no such command-line tools for profiling. I merely wanted to lament the fact that there's so *few* command-line tools. Out of all the dozens of profiling options for the JVM, I know of exactly three command-line-only tools: "hprof", which is very limited, slow, and profiles *everything*; The Java Interactive Profiler (JIP) library, which seems to have been abandoned (and so we stopped shipping it with JRuby); and OpenCore. Of these, only OpenCore is really useful for instrumented profiling.<br /><br />The main reason we don't ship OpenCore as the built-in profiler is the fact that it's not open source and therefore not distribution-compatible with JRuby's dist licenses. But there's no reason JRuby users shouldn't look into it.<br /><br />OpenCore really is an amazing tool, and we'd love to promote it more. Perhaps there's a way it could be easily bundled up as a Ruby gem so that JRuby users could have easier access to it? It could be the "professional grade" profiler while we continue to ship our own "basic" profiling logic as part of JRuby.<br /><br />I would also like to standardize the hooks we put in place for profiling in JRuby, so that OpenCore can use "blessed" entry points and hopefully have a better guarantee of working from version to version.<br /><br />Toss me an email :) I didn't mean to slight OpenCore or JXInsight in any way, and you know I'd love to get them in front of more JRuby users. We just wanted a dead simple (and perhaps not as scalable) built-in option, so people have an easily accessible "first tool" to reach for.Charles Oliver Nutterhttps://www.blogger.com/profile/06400331959739924670noreply@blogger.comtag:blogger.com,1999:blog-20975090.post-66126747790798524892011-01-04T18:00:02.679-06:002011-01-04T18:00:02.679-06:00Charles,
OpenCore's metering engine (which po...Charles,<br /><br />OpenCore's metering engine (which powers JXInsight) is completely command/console/terminal based.<br /><br />http://www.jinspired.com/videos/opencore/specjvm2008.top.probes.plugin.mp4<br /><br />Its also the fastest Java profiler. The fastest JRuby/Ruby profiler and the fastest Jython/Python profiler. <br /><br />http://williamlouth.wordpress.com/2010/08/23/benchmarking-opencore-probes-looptest-in-ruby/<br /><br />If you want to go build an adhoc profiling solution for JRuby that's fine but please don't start trying to justify it with claims that such tools don't exist. They do and they are far much more scalable.<br /><br />http://williamlouth.wordpress.com/2010/09/14/scalable-application-performance-management-part-1/Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-20975090.post-23028285026539666202011-01-04T12:50:00.760-06:002011-01-04T12:50:00.760-06:00Dave: Yep, that works just fine too, and JRuby can...Dave: Yep, that works just fine too, and JRuby can be set to force methods to compile before invocation, so they'll show up in Java tools.<br /><br />The problem with hprof, though, is that it's not possible to narrow its focus to just Ruby methods (or to exclude core JDK or JRuby implementation methods). As a result, hprof instrumented profiling is *really slow* since it's profiling every piece of Java code loaded.<br /><br />If you can get past that, the next issue is that our generated bytecode for Ruby methods often has long, mangled names that would be hard for a Rubyist to interpret, and hprof doesn't show filenames or line numbers.<br /><br />Ultimately I'd love to see better JVM tool support for alternative languages with "peculiar" bytecode, but a JRuby-specific profiler will probably always be needed.Charles Oliver Nutterhttps://www.blogger.com/profile/06400331959739924670noreply@blogger.comtag:blogger.com,1999:blog-20975090.post-5453932220985966582011-01-04T10:10:54.048-06:002011-01-04T10:10:54.048-06:00If JRuby is generating bytecode rather than using ...If JRuby is generating bytecode rather than using an interpreter loop, can't you use hprof itself as the profiler? Even if mixed-mode, all the hot methods that you are interested in are going to get compiled to bytecode. Plus you would also see any meta stuff from the JRuby compiler itself. And you would also see the input from any pure Java calls that JRuby makes. <br /><br />Or is there no simple mapping from JRuby methods to Java methods?Dave Griffithshttps://www.blogger.com/profile/01007459983084673539noreply@blogger.com