luajava中使用luajit提升性能

本文讲述了在cocos2d-x游戏中,通过luajava结合lua脚本实现服务器战斗结果计算。在遇到性能问题后,作者将luajava中的lua VM替换为luajit,大幅提升了执行效率,最终将战斗计算时间从近3s优化到100ms。文章详细介绍了luajit的集成和编译过程,以及遇到的32位和64位兼容性问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近着力开发一款手游,前端基于cocos2d-x引擎,使用lua脚本方案,后端用java,有一个需求是服务器要能自动计算玩家战斗结果,幸好使用了lua,该语言就是这么强大,服务器直接复用前端代码,精确完成战斗过程以及结果计算。 随之而来的两个问题是:

1、整理前端代码,跟界面逻辑解耦。
2、java中如何跑lua代码。

第一个问题说来也挺自豪,多年养成的mvc习惯,业务代码很容易就能揪出来。
第二问题google了一下,有很多解决方案,大体分为两种:
1、使用java将lua vm实现一便。如:luaj
2、使用jni直接嵌入lua的vm。 如:luajava,JNlua

作者只考虑第2种情况,由于JNlua在mac下编译有点问题,放弃,直接选择了luajava

luajava的编译过程可参照官网的介绍,编译完成后会得到两个文件:libluajava-1.1.jnilib,libluajava-1.1.jar
.jar 很自然要加到项目的包路径下,重要的是.jnilib的位置,使用System.getProperty("java.library.path")打印出地址列表,放到其中一个里面就可以,mac 下可以放到:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java。

</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值