Effective warmup strategy for Nashorn - JDK-8u40-b25
hannes.wallnoefer at oracle.com
Wed Mar 11 10:06:15 UTC 2015
I'm currently loking at the benchmark scripts you posted.
One approach you should try is to use a single Nashorn ScriptEngine with
multiple bindings (i.e. JS global objects). This allows Nashorn to share
compiled classes among multiple threads. It's probably the best
improvement you can make to startup and warmup time if you're using
multiple JS environments on multiple threads. On the other hand, it may
reduce top performance a little bit because of added polymorphism.
I've written about this in my recent Nashorn blog post, it also contains
demo code for how to set up the script engine for multiple threads:
I hope this helps. I'll get back to you when I'm done trying your scripts.
Am 2015-03-11 um 02:52 schrieb Kunal Cholera:
> Hello Nahsorn dev team,
> Three questions
> 1.What is the best way to quickly warm-up to reach optimal performance in fewer iterations ?
> 2. Is there a better way to warmup using fixture data as opposed to fake data which we have to maintain ?
> 3. Is there a way to clone 1 nashorn instances that is warmed up so that we can avoid doing the same warmup for other nashorn instances ?
> Steps to reproduce these performance numbers -
> Download this ziphttps://drive.google.com/file/d/0B5PpdCJ7YycqMWlVQ0FsNlozcTA/view?usp=sharing which has the following four files
> 1. bench.js - the benchmarking script
> 3. hp.json - the data we want to use while executing our script hp.js
> 4. dust-full.js - library needed to execute hp.js script
> I am using "1.8.0_40-ea" Java(TM) SE Runtime Environment (build 1.8.0_40-ea-b25 on 8 core redhat linux machine ).
> Please advise.
> Kunal Cholera
More information about the nashorn-dev