是否有任何提示和技巧使犀牛表现更快?

Ale*_*ean 7 javascript java performance rhino

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

Dar*_*yte 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();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当运行几次脚本时,这会带来好处.基本上它每次都减少了重新解释的开销.来自CompiledScriptjavadoc:

通过存储编译结果的类进行扩展.状态可以以Java类,Java类文件或脚本语言操作码的形式存储.脚本可以重复执行而无需重新分析.

无论如何,我认为你应该看一下Rhino JavaScript编译器.它"将JavaScript源转换为Java类文件".

还有一个V8 Java实现.检查jav8.