Unity中使用的几种缓存方式

本文介绍了在Unity开发中减少垃圾收集(GC)的方法,包括使用各种池技术和缓存策略来降低堆内存分配频率和大小。文中详细列举了Classpool、Listpool等具体应用场景,并探讨了资源缓存策略,例如LRU和LFU算法。
要减少GC就要减少堆内存分配的频繁度和减少内存分配的大小。
一般性我们用得多的也就是各种池处理和缓存字典。

我自己总结在Unity里用到缓存的地方:

  • Class pool:网络PB类等
  • List pool:各种中间列表,用完即删的List
  • Unity game object pool:缓存各种游戏中的Object、减少Instance次数,如名字板、血条、当前场景怪
  • Class internal cache:类内部临时变量或者字典结构;使用的个数很少,这样写起来快也更直观,不依赖其它结构
  • Resource cache:bundle及已经加载的音频、图片等资源的缓存及释放

对于音频资源,使用某个音频之后是否会接着使用,这个是不确定的。这时我们可以使用一些置换算法来达到一个比较好的缓存效果。
1. LRU;这个算法比较成熟,就是最近的最长时候没有使用到的那一个。
2. LFU;这个算法的实现有些变体。就是既统计时间也统计次数,在这当中取一个平衡值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值