最近由于项目原因,我开始研究lua的回收机制,内存泄漏以及内存优化,于是在网上开始搜寻资料。
http://www.huomo.cn/developer/article-e8c5.html这篇文章讲述了游戏过程中遇到一些内存泄漏的问题,其中最容易犯的一个问题就是将局部变量声明为一个全局的变量,这样做的话,即使使用了collectgarbage("collect")内存依然不会被回收,里面还谈到了在写游戏逻辑的时候,需要注意到的四个点,其中第二点,我曾今为了找这个问题找了一早上来查一个崩溃bug,原因就是在c++中删除了lua中的某个怪物,而并没有通知lua,所以在写游戏逻辑的时候务必保证c++,lua中的对象删除,添加要一致,lua调用c++的一个create接口,一定要记得不用的时候remove这个对象,否则会造成内存泄漏。
http://stackoverflow.com/questions/4064451/luas-gc-and-realtime-game这个是stackoverflow 上面关于lua gc的一个问题,介绍了lua手动gc的方法。
时间: 2024-11-05 13:04:04