官方地址 : https://docs.unity3d.com/Manual/ProfilerMemory.html
在内存分析器中可以使用两种模式检查应用程序的内存使用情况。这是在下面板左上角的下拉菜单中选择的。
1.Simple
这个简单的视图显示了一个简单的概述,在每个帧的基础上,在整个Unity中如何使用内存。
为了避免频繁地询问操作系统,Unity保留内存池以供分配。这是作为一个保留的数量显示的,以及使用了多少。
这方面的内容包括:
- Unity 在本机联合代码中分配的内存数量
- Mono 托管代码所使用的堆大小和堆大小。这个内存是垃圾收集的
- GfxDriver 驱动程序在纹理上使用的估计内存数量,呈现目标、着色器和网格数据。
- FMOD 音频驱动程序的内存使用情况
- Profiler 用于分析器数据的内存
所显示的数字与任务管理器或活动监视器不一样,因为有些用法是由内存分析器不跟踪的。这包括一些驱动程序使用的内存,以及用于可执行代码的内存。
内存统计信息显示在一些最常见的asset/object类型中。这些统计数据包括计数和使用的内存(主要和视频内存):
- Textures
- Meshes
- Materials
- Animations
- Audio
- Object Count
对象计数是创造的对象的总数。如果这个数字随着时间的推移而上升,那么你的游戏就是在创造一些从未被摧毁的对象。
2.Detailed
详细的视图允许您获取当前状态的快照。使用Take Sample按钮来捕获详细的内存使用情况。获取这些数据需要一些时间,因此不应该期望详细的视图能够提供实时的细节。在取样之后,分析器窗口将使用树形视图进行更新,您可以在其中探索内存使用情况。
这将显示单个资产和GameObject内存使用情况。它还显示了一个游戏对象在内存中的原因。常见的原因包括:
- Assets:从用户或本机代码引用的资产
- Built-in Resources:统一编辑器资源或统一缺省资源
- Not Saved:标记为DontSave的GameObjects
- Scene Memory: GameObject和附加组件
- Other: 在上面的类别中没有标记的配子
点击列表中的GameObject,在项目或场景视图中查看它。
当在编辑器中进行剖析时,内存分析器显示的所有数字都指示编辑器中的内存使用情况。这些通常比在播放器中运行时要大,因为运行Unity编辑器会增加额外的内存。要想获得更精确的数字和内存使用,请使用剖析器连接来连接到运行的播放器。这将在目标设备上提供实际的使用。
系统下的内存报告。executableanddll是只读存储器,所以操作系统可能会根据需要丢弃这些页面,然后从文件系统重新加载它们。这会产生较低的内存使用,并且通常不会直接导致操作系统决定杀死应用程序。其中一些页面也可能与使用相同框架的其他应用程序共享。