Hi,

Also, you may want to try

-Dnashorn.args=--optimistic-types=false (for 8u40 and 9)

or to use both options

-Dnashorn.args="--global-per-engine --optimistic-types=false (for 8u40 and 9)

Please post your numbers with these options and also link to source of your app or a reduced test of similar usage pattern.

Thanks,
-Sundar

On Thursday 25 September 2014 11:24 AM, A. Sundararajan wrote:
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



Reply via email to