Hou*_*man 10 java performance rhino java-8 nashorn
我使用Rhino作为图形内部的脚本组件.在该项目中,大约有200个小脚本独立运行.启动应用程序时,脚本应立即全速运行.Rhino的表现已经足够了,但是自从Oracle建议迁移到Nashorn之后,我面临着一个困境.
下图显示了Rhino和Nashorn之间的负载差异,大约有15,000个脚本调用.Nashorn的创业缓慢是我最大的问题.
注意,这是在JDK 1.8.0上.JDK 1.8u5是类似的

我希望图片清晰.
这是我如何使用ScriptEngine的概述:
下面我提供了一个运行时配置文件,说明了引擎随时间的繁忙程度;

有谁知道如何克服Nashorn的创业缓慢?
更新
2015 年4月15日在Java8u45上使用200个单独的脚本进行相同的测试.
性能要好得多!在Java7上以与Rhino类似的速度运行.
在 Java 1.8 上,您可以通过javax.scriptAPI 使用此 Maven 依赖项并请求引擎来使用 Rhino rhino:
<dependency>
<groupId>de.christophkraemer</groupId>
<artifactId>rhino-script-engine</artifactId>
<version>1.1.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
主页在这里: https: //github.com/cevou/rhino-script-engine
二进制文件:这里
如果您想要最新版本的 Rhino,您可以通过添加如下内容来覆盖它:
<dependency>
<groupId>org.mozilla</groupId>
<artifactId>rhino</artifactId>
<version>${rhinoVersion}</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
二进制文件:这里
顺便说一句,如果您想通过 Java 1.7 获取最新的 Rhino javax.script,您应该请求引擎名称rhino17R5,否则您可能会随机获得旧 Rhino 的实例,它是 JRE 的一部分。所需的确切引擎名称取决于 的版本rhino-script-engine。对于 1.1.1,它是rhino17R5。
| 归档时间: |
|
| 查看次数: |
1525 次 |
| 最近记录: |