XLua框架接入项目性能分析

XLua的优势

  1. XLua与NLua都是从LuaInterface发展过来,可以较轻松的从NLua替换成XLua。
  2. 在NLua接口的基础上额外提供了无GC的接口,XLua在减少GC方面有较大的优势。
  3. XLua在NLua的基础上还提供了代码生成,生成中间适配代码的功能,避免使用反射进行Lua与C#的交互,可以明显提高性能。

性能测试说明

Lua调用的C#函数,在XLua测试中使用了生成代码。
C#调用Lua函数,在XLua测试中使用了减少GC的接口

性能测试报告

性能测试总结

总体情况

可以看到在所有的测试情况中,XLua的性能全面占优,平均有差不多两倍性能的提高。

Lua调用C#函数测试

由于使用了生成中间适配代码的方式,避免了使用反射的情况,该项测试中XLua的性能提升情况最为理想。总体耗时平均提升了2.25倍。
本项测试中,NLua的平均耗时:XLua的平均耗时 = 2.25

C#调用Lua函数测试

在本项中XLua与NLua在性能上没有很大的区别,两者没有特别大的性能差异
本项测试中,NLua的平均耗时:XLua的平均耗时 = 1.10

实际应用场景测试

由于不同器材的功能不同,使用的AC也不尽相同,所以创建元器件时测出来的性能表现也会有所差异,由于针对元器件的创建的测试没有进行多次测试取平均值,可能出现测试结果存在一定误差的情况,但从总体上来看,替换了XLua之后,元器件创建的一个整体性能时提高的,从后面的加载颗粒的测试结果中也不难看出此结论。
本项测试中,NLua的平均耗时:XLua的平均耗时 = 1.67