首页 > 代码库 > LuaJ 调用java方法性能研究

LuaJ 调用java方法性能研究

先简单写一下;

 

lua调用java的方法,在luaJ中有两种。

1 使用官方提供的luaJava库

local ins = luajava.newInstance( "com.test.lj.TestClass");
ins:test()

 

2 自己绑定方法,采用类似原版lua的方式将方法

local ins = TestClass.new()  --new方法自己绑定ins:test()

哪种方法好?

 

结论:

令人惊讶的是,luajava库反射调用的性能在某些情况下,竟然比java原生绑定要快。

 

1  在对象方法数比较少的情况下,luajava生成的类的方法执行速度比java绑定要快一点,但基本一样。

2  在对象方法数多多情况下(复杂对象),luajava生成的类的执行速度比java绑定慢(可能是绑定了不相关的方法),我的一个测试对象执行结果,luajava比java的速度大概是 1.5 : 1

3 创建对象的速度上,java绑定远优于luajava,这个基接近2:1的关系了;

 

选择建议:

如果是偶然使用的一个对象,建议使用luajava,方便快捷,速度也不差

如果是经常new的对象或复杂的对象(但是实际只使用部分方法)建议用java绑定

 

(如果有需要,留言;我把测试代码放上来)

 

 

  

LuaJ 调用java方法性能研究