Posted on 2011-08-03 14:18 
oathleo 阅读(1516) 
评论(0)  编辑  收藏  
			 
			
		 
		和奇怪,调试模式下的SAX和script
效率巨慢,而运行模式下,好很多,大概快5-10倍。
另外script包会编译一个print方法,这个过程耗时很多,严重影响效率
去掉并做些优化后
500条脚本,执行从1s缩减到200ms
代码精简如下:
RhinoScriptEngine.java
    Scriptable getRuntimeScope(ScriptContext ctxt) {
        if (ctxt == null) {
            throw new NullPointerException("null script context");
        }
        // we create a scope for the given ScriptContext
        Scriptable newScope = new ExternalScriptable(ctxt, indexedProps);
        // Set the prototype of newScope to be 'topLevel' so that
        // JavaScript standard objects are visible from the scope.
        newScope.setPrototype(topLevel);
        // define "context" variable in the new scope
        newScope.put("context", newScope, ctxt);
        // define "print", "println" functions in the new scope
        //去掉下面几行
//        Context cx = enterContext();
//        try {
//            cx.evaluateString(newScope, printSource, "print", 1, null);
//        } finally {
//            cx.exit();
//        }
        return newScope;
    }