咖啡伴侣

呆在上海
posts - 163, comments - 156, trackbacks - 0, articles - 2

sax,script包在android中的效率

Posted on 2011-08-03 14:18 oathleo 阅读(1500) 评论(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;
    }

只有注册用户登录后才能发表评论。


网站导航: