kahlua java上的lua脚本介绍及性能测试
kahlua是一款基于CLDC1.1且非常小巧的Lua解释器,它很容易扩展。只需要配合一个Lua编译器,就可以执行编译后的Lua源代码。
也可以用在j2se上,而且速度还非常快!!支持把lua文件的编译执行,大家可以到http://www.oschina.net/p/kahlua 下载项目和交流此项目
以下是一个测试例子
java 代码
-
UserdataArray.register(state);
-
OsLib.register(state);
-
LuaCompiler.register(state);
-
state.getEnvironment().rawset("setPosition", new JavaFunctionSetPosition());
-
// state = runLua(dir, state, new File(dir, "stdlib.lbc"));
-
LuaClosure closure = LuaCompiler.loadis(new FileInputStream(testhelper), testhelper.getName(), state.getEnvironment());
-
for (int i = 0; i < 10; i++) {
-
state.call(closure, null);
-
}
-
}
-
-
class JavaFunctionSetPosition implements JavaFunction {
-
-
@Override
-
public int call(LuaCallFrame callFrame, int nArguments) {
-
// System.out.println(callFrame.get(0));
-
return 1;
-
}
-
-
}
-
-
lua 代码
-
a=0
-
do print(a) end
-
for i = 1, 1000000 do
-
a = a+1
-
setPosition(i)
-
end
-
do print(a) end
-
以上意思是运行1000000次setPosition方法 , setPosition是一个java的方法。
运行结果是700ms,1000000 次才700ms非常不错了
groovy运行时间也是700ms左右
最近评论