UFL3——缓存池(对象池)模块
UFL3——缓存池(对象池)模块
前置知识点
- C#中垃圾回收机制(GC)相关知识(C#四部曲之C#核心中)
- C#中
Dictionary
、List
、Stack
、Queue
相关知识点(C#四部曲之C#进阶中)- Unity中GameObject相关知识(Unity四部曲之Unity入门中)
- Unity中Resources相关知识点(Unity四部曲之Unity入门中)
缓存池(对象池)模块
-
缓存池(对象池)的主要作用
通过重复利用已经创建的对象,避免频繁的创建和销毁过程
从而减少系统的内存分配和垃圾回收带来的开销 -
缓存池(对象池)的基本原理
用一个“柜子”中的“各种抽屉”来装“东西”
用时去拿(没有就创造,存在就获取),不用就还(将“东西”分门别类的放入“抽屉”中)
缓存池(对象池)要解决的问题
-
对象的频繁创建
频繁的实例化对象会带来一定的性能开销
-
对象的频繁销毁
对象的频繁销毁会造成大量的内存垃圾,会造成GC(垃圾回收)的频繁触发
GC的触发,内存的释放,可能会带来卡顿感,影响玩家体验
缓存池(对象池)的主要作用
缓存池(对象池)的主要作用是优化资源管理,提高程序性能。
主要通过重复利用已经创建的对象,避免频繁的创建和销毁过程,从而 减少 系统的内存分配 和 垃圾回收带来的开销。
缓存池(对象池)的基本原理
-
目标:
通过重复利用已经创建的对象,避免频繁的创建和销毁过程
从而 减少 系统的内存分配 和 垃圾回收带来的开销 -
思路:
用一个“柜子”中的“各种抽屉”来装“东西”
用时去拿(没有就创造,存在就获取),不用就还(将“东西”分门别类的放入“抽屉”中)
具体实现
缓存池具体实现
Hierarchy窗口布局优化
Hierarchy窗口布局优化
对象上限优化
对象上限优化
增加缓存对象种类
增加缓存对象种类
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!