相关疑难解决方法(0)

Nashorn启动缓慢可以克服吗?

我使用Rhino作为图形内部的脚本组件.在该项目中,大约有200个小脚本独立运行.启动应用程序时,脚本应立即全速运行.Rhino的表现已经足够了,但是自从Oracle建议迁移到Nashorn之后,我面临着一个困境.

下图显示了Rhino和Nashorn之间的负载差异,大约有15,000个脚本调用.Nashorn的创业缓慢是我最大的问题.

注意,这是在JDK 1.8.0上.JDK 1.8u5是类似的

发动机性能比较

我希望图片清晰.

这是我如何使用ScriptEngine的概述:

  • 我正在使用One scripting Engine实例,
  • 我为每个脚本创建一个CompiledScript对象,
  • Swingworker执行一次CompiledScript.eval().
  • 每半秒SwingWorkers就会启动.
  • 每个CompiledScript都有自己的SimpleScriptContext实例,可以在每次执行时重复使用.

下面我提供了一个运行时配置文件,说明了引擎随时间的繁忙程度; 在此输入图像描述

有谁知道如何克服Nashorn的创业缓慢?


更新
2015 年4月15日在Java8u45上使用200个单独的脚本进行相同的测试.
性能要好得多!在Java7上以与Rhino类似的速度运行.

java performance rhino java-8 nashorn

10
推荐指数
1
解决办法
1525
查看次数

标签 统计

java ×1

java-8 ×1

nashorn ×1

performance ×1

rhino ×1