前言
对Unity开发者而言GC是非常重要的性能指标之一,因为触发GC会比较耗时,从而就会影响游戏的帧率,影响游戏体验。
什么是GC
GC如其名,就是垃圾收集,当然这里仅就内存而言。Garbage Collector(垃圾收集器,在不至于混淆的情况下也成为GC)以应用程序的root为基础,遍历应用程序在Heap上动态分配的所有对象[2],通过识别它们是否被引用来确定哪些对象是已经死亡的、哪些仍需要被使用。已经不再被应用程序的root或者别的对象所引用的对象就是已经死亡的对象,即所谓的垃圾,需要被回收。这就是GC工作的原理。为了实现这个原理,GC有多种算法。比较常见的算法有Reference Counting,Mark Sweep,Copy Collection等等。目前主流的虚拟系统.NET CLR,Java VM和Rotor都是采用的Mark Sweep算法。
GC脑图
相关文章
- Unity优化之GC——合理优化Unity的GC https://www.imooc.com/article/21288
- Unity GC(垃圾回收) http://gad.qq.com/article/detail/28109
- C#技术漫谈之垃圾回收机制(GC) https://kb.cnblogs.com/page/106720/