我想加快纳霍恩的评估
I want to speed up the eval of Nashorn
本文关键字:评估 更新时间:2023-09-26
我被允许运行zxcvbn.js(Javascript库)到Nashorn。但有一个问题。
eval(预编译)非常慢。大约需要3分钟。我想更快地行动。
public class StrengthChecker {
private static final String ZXCVBN_PATH = "/META-INF/resources/webjars/zxcvbn/1.0/zxcvbn.js";
private final ScriptEngine engine;
public StrengthChecker() {
ScriptEngineManager manager = new ScriptEngineManager();
engine = manager.getEngineByName("nashorn");
Bindings engineScope = engine.getBindings(ScriptContext.ENGINE_SCOPE);
engineScope.put("window", engineScope);
try {
// -------------------------------------------
// Here is very slow definition of zxcvbn.js.
// -------------------------------------------
engine.eval(getResourceContents(ZXCVBN_PATH));
} catch (ScriptException e) {
throw new RuntimeException(e);
}
}
public Strength check(String pw) {
try {
Map<String, Object> result;
result = (Map<String, Object>) engine.eval("zxcvbn('" + pw + "');");
return new Strength(
((Double) result.get("entropy")).intValue(),
(int) result.get("score"),
((Double) result.get("crack_time")).intValue()
);
} catch (ScriptException e) {
throw new RuntimeException(e);
}
}
}
请告诉我们一些解决方案。
这是一个已知的性能错误,已修复,请参阅https://bugs.openjdk.java.net/browse/JDK-8137333.它应该与Java 8u72一起发布,计划于2016年1月发布。Java 9的预发布版本可在https://jdk9.java.net/download/还包含修复程序(自JDK9构建b85以来)。
相关文章:
- 使用正则表达式评估电子邮件地址时出现性能问题
- 如何检查链接是否有文本,并根据文本值评估条件-Jquery/JS
- 类型错误'未定义'不是对象(正在评估'navigator.connection.type'
- 下载javascript文件,但不要立即对其进行评估
- 在WebView iOS中评估Javascript
- TypeError:undefined不是对象(正在评估'newWindow.focus')
- r.js评估'text'插件,尽管在'stubModules'参数
- 避免重新评估和动态卸载用“require”调用的对象
- 删除评估值Javascript时的错误
- 咖啡脚本意外的条件评估
- Javascript-在一行中评估多个正则表达式
- &&评估问题
- 在JavaScript中评估复杂的数学表达式
- JavaScript:获取对象的评估属性
- 基本的Javascript/jQuery数学游戏:为什么可以't我第二次运行此函数时进行评估
- 带有 Sweet.js 的惰性评估宏
- 蒙戈 --安静不抑制 --评估输出
- 我可以在对象上下文中评估表达式吗?
- 使用评估函数调用 javascript 函数作为文本框 Asp.net 参数
- Webpack:是否可以在编译时评估javascript表达式