
在 堆垃圾数据 一文中提到查找垃圾数据的进程较好的方法是使用 Unity 中的 Profiler(探查器),它是一个较为有用的工具,可以识别应用程序性能改进的领域,通过监控内存消耗来快速查明游戏中的瓶颈,从而大大简化优化过程。
例如它可以在编辑器中运行以获取相关资源一览图,同样会收集并显示在 CPU、内存、渲染器和音频等领域的性能数据。有了它可以让我们处理相关垃圾数据事半功倍。
要使用 Profiler,需要这样做:
- 按 Play 开始游戏
- 通过转到 Window – Analysis – Profiler
在下图中,Heirarchy 视图中的 CPU Profiler 可以告诉大家在特定帧中分配了多少垃圾,并且在启用 深度剖析(Deep Profiling) 的情况下,Profiler 会分析代码的每个部分 ,甚至可以展示给大家哪个函数负责它的运行。(启用 Deep Profiling 深度剖析在一定程度上会为构建程序增加少量的成本)

但是,在编辑器中运行 Profiler 时,如果正在创建任何垃圾数据,我们都是可以一目了然的,为了获得可靠的检查结果,此时你需要在 独立播放器(Standalone Player) 中将项目作为开发版本运行。
此时,选择 自动连接分析器(AutoConnect Profiler) 将允许在构建的游戏运行时对其进行监控。

当启用自动连接分析器设置时,有些动作在编辑器中运行时会导致大量垃圾,但在独立播放器中不会产生的,这个是经过验证的结果。
虽然 Profiler 可以为 Unity 在检测垃圾数据方面很有帮助,但在使用它之前我们需要搞清楚在 Unity 编辑器中哪些进程会带来垃圾,哪些不会,这是前置条件。
所以需要针对每个会产生垃圾数据的进程具体检查并分析。