【发布时间】:2017-04-26 23:46:27
【问题描述】:
示例程序
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine jsEngine = mgr.getEngineByName("JavaScript");
System.out.println(jsEngine.eval("a>10 || b<10 || c=10"));
在我的程序中,我使用上面的代码来评估 1000 个使用 javascript 函数的表达式,例如 indexof()、replace、date 函数等等。这种表达式曾经在 rhino 中进行评估(当平台 java 版本是java 7) 比 nashorn 快得多....我应该说至少快 15~20 倍....
在 Java 8 中使用 rhino 似乎是一项乏味的工作...有人可以建议解决方法以使其更快...
【问题讨论】:
-
你是如何测量速度的?你有一些实际比较执行时间的示例代码吗?
-
解决方法:实现自己的解析器?它们似乎是简单的逻辑表达式。
-
@markspace 我只是举了一个简单表达式的例子,但是我们使用了很多 javascript 函数,例如 indexof()、replace、date 和许多......我会更新问题
-
@pvg 我刚刚做了一组表达式,在java7(rhino)和java8(nashorn)上运行,比较了时间差
-
@Attila Szegedi 给出了答案并且它奏效了......最好解释为什么人们对这个问题投了反对票
标签: javascript java rhino nashorn