Any plans for optimizing engine.eval() ?

A. Sundararajan sundararajan.athijegannathan at oracle.com
Thu Sep 25 05:54:30 UTC 2014


Hi Roland,

Please add -Dnashorn.args=--global-per-engine to your command line and 
check the numbers. Also, as Hannes said, if it is possible for us to 
look up your code or pattern used in your code in a test, we may be able 
to help bit more.

Thanks,
-Sundar

On Thursday 25 September 2014 02:25 AM, Hannes Wallnoefer wrote:
> Hi Roland,
>
> Given that you execute all scripts only once, most of the Nashorn 
> execution time is probably spent in compilation and linking of 
> invokedynamic callsites. Although Nashorn is faster than Rhino once it 
> is warmed up, it takes longer to get there. In other words: If you run 
> your scripts more than once you should eventually see Nashorn getting 
> faster.
>
> That said, I'm a bit surprised about how much the numbers diverge. 
> Would it be possible to let us see the code you are running? This way 
> we might be able to give you advice on how to improve performance, or 
> it may help us to find bottlenecks in Nashorn.
>
> Thanks,
> Hannes
>
> Am 2014-09-24 um 11:12 schrieb Houtman, Roland:
>> Hi Dev,
>>
>> The first time a script is run, Nashorn seems to rely on the 
>> interpreting the script. But it isn't performing as Rhino did (at all).
>> I've tried the engines coming with the following JDK's
>> JDK 1.7u45
>> JKD 1.8u20
>> JDK 1.8.0_40 (build 6)
>>
>> The time I measured is the total execution time of 200 separate 
>> instances with all different scripts, all running only once.
>> (The test script is a nothing more than getting an object from an 
>> array, do an if/else, and storing the result in another array.)
>>
>> -- 
>> JDK 1.7u45 CompiledScript.eval()    219 msec
>> -
>> JKD 1.8u20 CompiledScript.eval()    13613 msec
>> JDK 1.8u20 Engine.eval()        14002 msec
>> -
>> JDK 1.8.0_40 CompiledScript.eval()    26396 msec
>> -- 
>>
>> I notice that it takes up to 60 seconds before Nashorn is ready 
>> creating&loading classes to run, and running at good speed.
>> In that timespan execution is very slow. (and seems to by 
>> interpreting the script far less optimal than Rhino)
>>
>> Can anyone give me insight in what is happening and where/how to seek 
>> improvements?
>>
>> Regards,
>> Roland
>



More information about the nashorn-dev mailing list