Question on Caching and Thank You

Tony Zakula tonyzakula at gmail.com
Sat Apr 18 15:02:00 UTC 2015


Hey All,

First off let me thank the Nashorn team for all the work on performance.
The latest is extremely awesome and impressive to say the least.  I have
been working on a project to see if the same performance could be achieved
by replacing a custom JSP system with a JS template system leveraging
Nashorn, and I think it is just about there.

I just had a quick question on caching.  We are creating our engine for use
on multiple threads with something like the following:

System.setProperty("nashorn.typeInfo.maxFiles", "20000");
final ScriptEngine engine = new
NashornScriptEngineFactory().getScriptEngine(new String[] {"-ccs=500",
"-ot=true"});

and we will try the "-pcc" soon.

We use a JS written template system.  We compile the template to JS code in
JS and the cache it in a Java Map that is available to all scripts on all
threads.  When a template is included, we use the compiled template from
the Java Map and use *eval* to run the template.  Since the template is
always the same until it is changed, my assumption is Nashorn compiles and
caches it for reuse.

My questions is, what is the best way to leverage the caching?  Is eval
fine?  Or should we potentially save the compiled JS templates to disk and
then load them with the load command or URL to achieve better performance?

Thanks,

Tony


More information about the nashorn-dev mailing list