Performance issues
Michel Krämer
michel at undercouch.de
Wed Feb 19 07:39:34 PST 2014
Hi folks,
I'm experiencing very drastic performance issues with Nashorn (JDK 8
b129) compared to Rhino. My script takes almost 13 minutes instead of 16
seconds! I hope you guys can tell me what's going on here.
I've recently tested citeproc-java
(https://github.com/michel-kraemer/citeproc-java) under JDK8 in order to
make sure it keeps running flawlessly when the next Java version comes
out. citeproc-java uses citeproc-js under the hood which is a rather
large JavaScript library consisting of one file of about 540 KB, 13.500
lines of code (https://bitbucket.org/fbennett/citeproc-js/wiki/Home).
Previously I used Rhino to execute the JavaScript and it worked quite
well. There is a test suite consisting of 758 tests. Running this suite
takes about 16 seconds (JavaScript compiled to byte code) or 46 secs
(interpreted JavaScript). However, if I try to run the same test suite
with Oracle Nashorn it takes 12.5 minutes! (see timings below)
This is a very drastic performance drop and I was very surprised to see
this. Is there some way to debug Nashorn in order to find out what is
actually going on here?
Timings on my computer (i5-3570K, 3.4 GHz, 4 cores, 16 GB RAM):
Rhino 1.7R4 (JavaScript compiled to byte code):
16.176 secs
Rhino 1.7R3 (bundled w/ JDK 7, interpreted JavaScript):
45.970 secs
Nashorn (JDK 8 b129):
754.266 secs
Steps to reproduce (no prerequisites other than JDK8):
git clone https://github.com/michel-kraemer/citeproc-java.git
cd citeproc-java
./gradlew runTestSuite -PscriptRunnerType=rhino
./gradlew runTestSuite -PscriptRunnerType=jre
Cheers,
Michel
More information about the nashorn-dev
mailing list