先簡單寫一下;
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綁定
(如果有需要,留言;我把測試代碼放上來)
