UFL3——缓存池(对象池)模块

前置知识点

  1. C#中垃圾回收机制(GC)相关知识(C#四部曲之C#核心中)
  2. C#中Dictionary​、List​、Stack​、Queue​相关知识点(C#四部曲之C#进阶中)
  3. Unity中GameObject​相关知识(Unity四部曲之Unity入门中)
  4. Unity中Resources​相关知识点(Unity四部曲之Unity入门中)

缓存池(对象池)模块

  1. 缓存池(对象池)的主要作用

    通过重复利用已经创建的对象,避免频繁的创建和销毁过程
    从而减少系统的内存分配和垃圾回收带来的开销

  2. 缓存池(对象池)的基本原理

    用一个“柜子”中的“各种抽屉”来装“东西”
    用时去拿(没有就创造,存在就获取),不用就还(将“东西”分门别类的放入“抽屉”中)

缓存池(对象池)要解决的问题

  1. 对象的频繁创建

    频繁的实例化对象会带来一定的性能开销

  2. 对象的频繁销毁

    对象的频繁销毁会造成大量的内存垃圾,会造成GC(垃圾回收)的频繁触发
    GC的触发,内存的释放,可能会带来卡顿感,影响玩家体验

缓存池(对象池)的主要作用

缓存池(对象池)的主要作用是优化资源管理,提高程序性能。
主要通过重复利用已经创建的对象,避免频繁的创建和销毁过程,从而 减少 系统的内存分配 和 垃圾回收带来的开销。

缓存池(对象池)的基本原理

  • 目标:

    通过重复利用已经创建的对象,避免频繁的创建和销毁过程
    从而 减少 系统的内存分配 和 垃圾回收带来的开销

  • 思路:

    用一个“柜子”中的“各种抽屉”来装“东西”
    用时去拿(没有就创造,存在就获取),不用就还(将“东西”分门别类的放入“抽屉”中)

    image

具体实现

缓存池具体实现

Hierarchy窗口布局优化

Hierarchy窗口布局优化

对象上限优化

对象上限优化

增加缓存对象种类

增加缓存对象种类