采用java mina做通讯。通过javalua和lua交互
假设逻辑部分 分别纯用java或者lua处理,测试结果如下
测试环境:
硬件:Intel(R) Core(TM) i 5-2400 cpu(3.10GHZ) 4核
软件:windows xp jdk7
1、java
压力测试
逻辑:每个请求1024次函数调用,每个函数1024次循环加法运算
1800个玩家同时在线,0.5秒一个请求
average time(microseconds):585284.400000
min time(microseconds):0.000000
max time(microseconds):604985.000000
bad num:0.000000
1900个玩家同时在线,0.5秒一个请求
total time(microseconds):7230192.000000
average time(microseconds):723019.200000
min time(microseconds):0.000000
max time(microseconds):737425.000000
bad num:0.000000
2、lua
压力测试
逻辑:每个请求1024次函数调用,每个函数1024次循环加法运算
100多个同时在线。基本上就不能用。这点和采用c写服务器对比,差别明显。
分析问题,jni方式应该是个主要瓶颈。java采用jni调用lua的c api.
综上根据平均响应看,纯用java,达到2000是没问题。若在java下纯采用lua编写逻辑,性能很差,基本上不推荐使用,只能部分使用。