egret内存优化之资源管理

简介: egret内存优化之资源管理
推荐阅读:

注:以下文章是针对egret来写的,其他引擎可参考思想,实现或许会有差异

我们这边的分多个场景,比如说我们登录场景资源,是另外分开的一个json配置的,到我们切换场景的时候就会根据那个配置的url来RES.destory对应的资源

比如游戏主场景,我们游戏是切块地图的,我们在进入游戏的时候会把地图资源存在一个map对象里面,每当切换场景要切地图的时候,我们就会检索这个map对象,来销毁地图加载新的地图

  1. 模型,特效资源。(加载、销毁管理,纳入计数器。定时检测,如果资源销毁时间超过5分钟,则会判定为资源可回收)

2.地图资源(主要是场景图片)。 (场景移动过程中,会把当前使用到的图片都放入一个map中存起来,(暂定为1分钟检测一次)定时检测,移除超过玩家9宫格范围外 2个格子的其它地图资源)
3.UI图片,图标资源。(对图片资源进行管理,界面打开的时候,会进场注册使用,计数+1,界面关闭的时候,会进入销毁逻辑,计数-1 ,定时检测,当前使用图片计数为0 的图片资源 。 不过现在这个地方还是会有问题:主要在Render 列表的地方)

我的方法就比较简单粗暴,直接添加到舞台上的时候弄个标记,不在舞台上了去掉,直接读RES中的缓存池,过滤不在舞台上的,其他全干掉
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
通用性高的资源,加入公共图集,独立性强的UI,放在自己的模块中即可。
比如这是common图集,我们会分的比较细一点。 比如这是common图集,我们会分的比较细一点。
在这里插入图片描述
在这里插入图片描述
他的做法是,除了加入引用计数之外,还加入一个最后引用的时间戳,每次检测的时候处理看引用计数之外,还看间隔的时间,如果最近引用的时间太近的话,也不释放
一般公共的图片,应该都有最近的引用时间戳,所以应该也不会被释放。

此外有一位大神做的比较厉害的地方:
对象池技术:(游戏中基本所有对象,都通过对象池来进行创建。包括但不局限于:文本、图片、各种对象), 基本把laya的底层代码,都进行了相关修改

相关文章
|
10月前
|
监控 Linux Python
Linux系统资源管理:多角度查看内存使用情况。
要知道,透过内存管理的窗口,我们可以洞察到Linux系统运行的真实身姿,如同解剖学家透过微观镜,洞察生命的奥秘。记住,不要惧怕那些高深的命令和参数,他们只是你掌握系统"魔法棒"的钥匙,熟练掌握后,你就可以骄傲地说:Linux,我来了!
339 27
|
设计模式 并行计算 安全
Java面试题:如何使用设计模式优化多线程环境下的资源管理?Java内存模型与并发工具类的协同工作,描述ForkJoinPool的工作机制,并解释其在并行计算中的优势。如何根据任务特性调整线程池参数
Java面试题:如何使用设计模式优化多线程环境下的资源管理?Java内存模型与并发工具类的协同工作,描述ForkJoinPool的工作机制,并解释其在并行计算中的优势。如何根据任务特性调整线程池参数
234 0
|
Kubernetes 网络性能优化 Perl
k8s【资源管理(resources)】4--LimitRange为配置命名空间内存最小和最大约束
k8s【资源管理(resources)】4--LimitRange为配置命名空间内存最小和最大约束
|
Kubernetes 网络性能优化 容器
k8s 【资源管理】2--LimitRange为命名空间配置默认的内存请求和限制
k8s 【资源管理】2--LimitRange为命名空间配置默认的内存请求和限制
|
6月前
|
存储
阿里云轻量应用服务器收费标准价格表:200Mbps带宽、CPU内存及存储配置详解
阿里云香港轻量应用服务器,200Mbps带宽,免备案,支持多IP及国际线路,月租25元起,年付享8.5折优惠,适用于网站、应用等多种场景。
1978 0
|
6月前
|
存储 缓存 NoSQL
内存管理基础:数据结构的存储方式
数据结构在内存中的存储方式主要包括连续存储、链式存储、索引存储和散列存储。连续存储如数组,数据元素按顺序连续存放,访问速度快但扩展性差;链式存储如链表,通过指针连接分散的节点,便于插入删除但访问效率低;索引存储通过索引表提高查找效率,常用于数据库系统;散列存储如哈希表,通过哈希函数实现快速存取,但需处理冲突。不同场景下应根据访问模式、数据规模和操作频率选择合适的存储结构,甚至结合多种方式以达到最优性能。掌握这些存储机制是构建高效程序和理解高级数据结构的基础。
635 1
|
6月前
|
存储 弹性计算 固态存储
阿里云服务器配置费用整理,支持一万人CPU内存、公网带宽和存储IO性能全解析
要支撑1万人在线流量,需选择阿里云企业级ECS服务器,如通用型g系列、高主频型hf系列或通用算力型u1实例,配置如16核64G及以上,搭配高带宽与SSD/ESSD云盘,费用约数千元每月。
576 0
|
存储 编译器 C语言
【C语言篇】数据在内存中的存储(超详细)
浮点数就采⽤下⾯的规则表⽰,即指数E的真实值加上127(或1023),再将有效数字M去掉整数部分的1。
971 0

热门文章

最新文章