其lua是c实现的,只执行lua内计算代码,速度非常快,例如100万次加法,只需要0.008s左右;
而当lua需要和c#交互,执行100万次lua调用c#,消耗时间3.4s
测试了一下纯c# 实现的 moonsharp 100万次加法,消耗1.9s
性能和c实现的lua差了200多倍。
c#实现lua解释器 moonsharp主要问题:
1:内存分配非常多,大量的临时对象用于表示lua的变量
2:解释器执行效率低下,100万次加法 的解释器执行消耗了9000ms,在开mono的profiler 进行分析的情况下
因为moonsharp 没有生成c#到lua的绑定代码,暂时还没有测试lua访问 c#的性能
python 的性能和lua 大概相差10倍, 循环执行100万次加法 0.089s 时间
slua 和 ulua 使用的是luajit, 如果使用luavm 100万次加法时间消耗 0.011s