是否有任何提示&让犀牛表现更快的技巧?

时间:2011-08-06 11:50:34

标签: java javascript performance rhino

是否有任何提示&让犀牛表现更快的技巧?我正在尝试使用Rhino中的uglifyJs压缩大型js文件,这需要一分多钟。在java服务器端空间中你有任何关于rhino的提示或其他选择吗?

2 个答案:

答案 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

或尝试使用“编译”模式而不是“解释”模式。