是否有任何提示&让犀牛表现更快的技巧?我正在尝试使用Rhino中的uglifyJs压缩大型js文件,这需要一分多钟。在java服务器端空间中你有任何关于rhino的提示或其他选择吗?
答案 0 :(得分:5)
使用基于Rhino的JavaScript API,您只需使用Compilable
接口编译脚本即可。例如:
public class CompileScript {
public static void main(String[] args) throws ScriptException {
ScriptEngineManager engineManager = new ScriptEngineManager();
ScriptEngine scriptEngine = engineManager.getEngineByName("js");
//cast to Compilable engine, this is safe for Rhino
Compilable c = (Compilable) scriptEngine;
CompiledScript script = c.compile("print('Hello World')"); //compile
script.eval();
}
}
然而,当运行几次脚本时,这会带来好处。基本上它每次都减少了重新解释的开销。来自CompiledScript
javadoc:
通过存储编译结果的类进行扩展。状态可以以Java类,Java类文件或脚本语言操作码的形式存储。脚本可以重复执行而无需重新分析。
无论如何,我认为你应该看看Rhino JavaScript Compiler。它“将JavaScript源代码转换为Java类文件”。
还有一个V8 Java实现。检查jav8。
答案 1 :(得分:0)
V8
或尝试使用“编译”模式而不是“解释”模式。