游戏lua内存优化

  最近由于项目原因,我开始研究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

游戏lua内存优化的相关文章

cocos2dx 游戏中内存优化

全文如下: 我目前正完成我的最后一个合约项目.在这个项目的最后阶段,我需要考虑的一件事情就是如何优化游戏的内存使用. 在今天的iDevBlogADay文章中,我将向大家讲述,我是如何减少25-30MB游戏内存消耗的(现在游戏消耗内存90-95MB,我还通过这个过程,消除了一些由于内存警告而引起的程序崩溃问题).同时,我还将游戏程序的大小从25MB减少到了20MB以下(如果苹果没有在不久前将蜂窝网下载应用的限制从20MB提高到50MB的话,那么我这个小的优化就太棒了,它可以潜在地给我带来更多的下载

Cocos2dx项目--动作类游戏内存优化--Spine结构分析

项目接近尾声,需要做加载效率优化和内存优化. 在加载Spine制作的资源时候,我们需要将文件(.json)进行解析,然后创建对象 spAtlas* t_atlas = spAtlas_createFromFile(altas_name.c_str(), 0); 第一步 //加载纹理文件 spSkeletonJson* json = spSkeletonJson_create(t_atlas); 第二步 //根据上步产生的对象穿件JSON骨架 spSkeletonData* skeletonDat

Unity3D 游戏开发之内存优化

项目的性能优化主要围绕CPU.GPU和内存三大方面进行. 无论是游戏还是VR应用,内存管理都是其研发阶段的重中之重. 然而,在我们测评过的大量项目中,90%以上的项目都存在不同程度的内存使用问题.就目前基于Unity引擎开发的移动游戏和移动VR游戏而言,内存的开销无外乎以下三大部分:1.资源内存占用:2.引擎模块自身内存占用:3.托管堆内存占用. 如果您的项目存在内存问题,一定逃不出以上三种情况.今天,我们就这三种情况逐一进行解释. 资源内存占用 在一个较为复杂的大中型项目中,资源的内存占用往往

转 iOS和android游戏纹理优化和内存优化(cocos2d-x)

iOS和android游戏纹理优化和内存优化(cocos2d-x) (未完成) 1.2d游戏最占内存的无疑是图片资源. 2.cocos2d-x不同平台读取纹理的机制不同.ios下面使用CGImage,android和windows下是直接调用png库.我测试了下,使用png库直接读取png会比CGImage还要节约1mb左右内存(图片所占内存4mb)但是速度要比CGImage慢一倍.时间和空间如何取舍就看实际情况了.不过最佳的选择似乎是pvr(即使android版本,即使不使用pvrtc4).

quick cocos2dx lua 内存释放

前言 对于内存的优化,网上有很多例子和教程.总体来说,就那么几种解决方案,在最后我会简单提下,这里先说下在quick中,对于图片的处理. 1.查看内存调试信息 对于quick框架的了解,我们可以参考\docs\文件夹里面的文件,有相关api.学会学习的第一步,就是学会看api.好了,废话不多说,下面是和内存相关的地方. 但是在这里我不说具体再项目中怎么使用了,相信各位大神们一看就明白,有错误的地方,更好的,请大神们分享一下. 在项目的config.lua中有些调试信息的设置,这里简单说下. 在初

Unity内存优化技术测试案例

笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D实战核心技术详解>电子工业出版社等. CSDN视频网址:http://edu.csdn.net/lecturer/144 Unity引擎优化技术,无非涉及到三点:CPU优化,GPU优化,内存优化. 先谈谈内存优化:大概可以分成三大部分: 1. Unity3D内部的内存 2. Mono的托管内存 3. 引入的DLL或者第

unity profile使用,内存优化,包大小优化

游戏优化往往是游戏开发中比较重要的一个环节,下面就分享一些自己在性能优化,内存优化,包大小优化方面的经验和总结. Profiler 是unity自带的,用来分析游戏运行性能,内存使用等非常好的工具,你可以通过它准确定位到影响游戏性能的脚本方法,内存过高的资源等等,对你优化游戏性能,内存有很大的帮助. 一.cpu占用分析 可以看出在白色竖线定位的那一帧,Game.Update()占用了88.3%,如果想知道脚本具体调用堆栈,和具体的问题出在哪,需要把Deep Profiler选上进行深度分析,当你

U3D内存优化

原创文章如需转载请注明:转载自风宇冲Unity3D教程学院  U3D内存优化 读了Hog关于内存管理文章, 自己测试了下. 有以下收获: (1)Unity的Profiler性能监测是非常准确. (2)测试复盘的 结果也完全与Hog的一致 (3)但是场景里已经放的物体,删除后,GameObject,Transform等复制出来的是被删掉了.但是引用的贴图却没有被删除.使用Resources.UnloadUnusedAssets并没有效果. 或者实时创建的,依然没有被释放. 最后用了Resource

性能分析工具Profiler——05内存优化

学习笔记适合新手,如有错误请指正.?号处也请各位指点下,谢谢. 内存优化一般来说主要从以下两方面入手:降低资源大小,及时释放不用资源 降低资源大小 要降低资源大小,首先需要分析哪些资源占用较大的比重 1在Build后,打开Console界面,点击界面右上交的下拉菜单 2Open Editor Log打开Editor日志,其中有在整个包中按大小排序的资源列表,它显示了资源的大小以及在安装宝中所占的比例 一般来说,一个3D游戏项目中贴图及UI资源图至少占用50%以上容量,其次就是模型资源.音频资源等