Nashorn and JVMTI

Tomas Hurka tomas.hurka at googlemail.com
Thu Oct 2 16:01:42 UTC 2014


Hi Attila,
JVMTI error 62 is caused by bug in JDK. See <https://netbeans.org/bugzilla/show_bug.cgi?id=245522>

--
Tomas Hurka   <mailto:tomas.hurka at oracle.com>
NetBeans Profiler http://profiler.netbeans.org
VisualVM http://visualvm.java.net
Software Developer
Oracle, Praha Czech Republic


On 2 Oct 2014, at 16:47, Attila Szegedi <attila.szegedi at oracle.com> wrote:

> Folks,
> 
> I'm forwarding a message from nashorn-dev (as well as my initial reply); there seems to be an issue with trying to profile Nashorn using JVMTI through NetBeans profiler. If anyone has any insight into this, it'd be appreciated.
> 
> Thanks,
>   Attila.
> 
> 
> Begin forwarded message:
> 
>> From: Attila Szegedi <attila.szegedi at oracle.com>
>> Subject: Re: Nashorn and JVMTI
>> Date: October 2, 2014 at 4:39:07 PM GMT+2
>> To: "David P. Caldwell" <david at code.davidpcaldwell.com>
>> Cc: nashorn-dev <nashorn-dev at openjdk.java.net>
>> 
>> No, we don't do anything to conceal Nashorn's internals. Granted, most of it lives in jdk.internal and jdk.nashorn.internal that are designated as restricted packages, but that shouldn't stop a debugger from looking into them. We often use jvisualvm ourselves to investigate Nashorn performance.
>> 
>> I often tell people that one of the benefits of running anything (including JavaScript) on the JVM is monitoring and management, so I'd definitely be against obscured visibility into the runtime.
>> 
>> I'll try to make NetBeans and JVMTI people aware of this.
>> 
>> Attila.
>> 
>> On Sep 25, 2014, at 11:13 PM, David P. Caldwell <david at code.davidpcaldwell.com> wrote:
>> 
>>> Team,
>>> 
>>> When I attempt to connect the NetBeans profiler (which I understand to
>>> be essentially the same as jvisualvm) to a Nashorn embedding, I get an
>>> error (JVMTI error 62) for essentially every class that relates to
>>> scripting, including the dynalink stuff and Nashorn itself, as well as
>>> generated classes named NashornJavaAdapter.
>>> 
>>> If I persist through all of this (or filter them out of being
>>> profiled, or turn on -Xverify:none), I end up with profiling data that
>>> doesn't involve the JavaScript code at all; it basically treats the
>>> call to eval() as atomic.
>>> 
>>> Do you guys do this stuff? My customers are constantly objecting to
>>> the "fact" that running Java on the JVM is going to be a terrible
>>> idea, performance-wise -- especially compared to Node, which they
>>> believe is lightning fast -- and I am having difficulty generating
>>> data on this point.
>>> 
>>> More generally, of course, profiling is a normal and necessary
>>> development activity. I wrote a Java agent for Rhino that mangled the
>>> classes using Javassist to wrap all JavaScript function invocations in
>>> instrumented methods, but I'm not clear on (a) whether that's
>>> necessary, or (b) how it would work given the Nashorn implementation
>>> is probably using constructs I don't yet understand. But if that's the
>>> route, let me know and give me a pointer or two and I'll be on my way.
>>> 
>>> -- David P. Caldwell
>>> http://www.davidpcaldwell.com/
>> 
> 




More information about the serviceability-dev mailing list