1.12 Memory Profiler Package - Summary

1.Summary

2.Memory Usage On Device

3.Allocated Memory Distribution

4.Managed Heap Utilization

5.Top Unity Objects Categories


1.Summary

csharp 复制代码
该页签主要显示快照中的内存总体信息, 该页签主要由以下四部分组成

a.Memory Usage On Device 设备上的内存使用情况

b.Allocated Memory Distribution 已分配内存分布

c.Managed Heap Utilization 托管堆使用率

d.Top Unity Objects Categories Unity对象分类

2.Memory Usage On Device

csharp 复制代码
1).memory usage on device主要作用: 展示当前快照中, unity在设备上实际占用了多少

内存; 用于判断当前游戏内存是否接近设备内存限制

2).ios/android中, 系统会给每个App分配一段最大内存上限(比如: 512MB, 1GB因设备不

同而异), 如果你的游戏在运行过程中内存分配超过了这个上限, 那么操作系统会判断该App占用

内存超标, 会强行杀死进程, 不给任何提示

- Android 低端机 350MB - 450MB

- Android 中端机 500MB - 600MB

- Android 高端机 700MB - 1.2GB

- iphone  6s    350MB

- iphone  12+   1GB

- iPad    Pro   1.5GB
csharp 复制代码
a.Total Allocated 

  系统给进程分配的虚拟内存大小

b.Total Resdient On Device

  进程实际占用的物理内存大小

3.Allocated Memory Distribution

csharp 复制代码
allocated memory distribution用于显示分配的内存在内存区域中分布, 将光标悬停在类

别上, 分析各个系统的内存占用比例
csharp 复制代码
a.Native 

  原生内存, C++层对象, 比如GameObject, 资源加载, 系统插件等

b.Managed 

  托管内存, 比如C#代码中的类, 数组, List等托管对象

c.Graphics(Estimated) 

  图形相关对象(如纹理, 网格, 着色器等)在CPU内存(RAM)占用的估算大小

d.Untracked 

  unity无法识别的内存, 若很大; 可能是图形驱动, 插件, 平台相关等需用平台专用工具查看

  - Andorid Profier  - Xcode Instruments

csharp 复制代码
e.Executables & Mapped都表示的是虚拟内存的大小

  - Executables存放的是编译后的二进制的机器指令

  - Mapped(文件映射), 与其一次性把整个大文件全部读进内存, 不如建立一个映射关系, 等

    到真正需要哪部分数据时, 再把它加载到内存中

    比如: 映射一个2GB的文件, 可能只占几KB的虚拟地址空间, 直到你读取它

4.Managed Heap Utilization

csharp 复制代码
Managed Heap Utilization表示Unity托管堆(Managed Heap)当前的使用率
csharp 复制代码
a.Empty Heap Space 

  托管堆中的空闲区域

b.Objects

  托管对象占用内存

c.Virtual Machine

  Mono或IL2CPP脚本运行时环境自身运行所需的内存

csharp 复制代码
脚本运行时(Scripting Runtime)和脚本后端(Scripting Backend)

a.脚本运行时表示你能使用哪些c#语言特性和api来写代码

  比如: .Net 3.5, .Net 4.x, .Net Standard

b.脚本后端表示你的代码如何被编译和运行, 以及发布到哪些平台

  比如: Mono, IL2CPP

5.Top Unity Objects Categories

csharp 复制代码
Top Unity OBjects Categories表示Unity哪些对象占用的内存多
csharp 复制代码
a.RenderTexture

  渲染纹理, 比如屏幕后处理, 相机目标输出, 屏幕截图等所占内存空间

b.Texture2D

  静态纹理(材质贴图)所占内存空间
  
c.Shader

  着色器所占内存, 包含着色器变体

d.Others

  未归类到已知类型的原生对象, 比如原生插件对象等

csharp 复制代码
e.SceneVisibilityState是Unity编辑器为了管理你在场景窗口的可见效操作的内存

  - 详细解释:
   
    在Unity编辑器的场景视图里, 你可以点击层(Layers)旁边的眼睛图标, 或者直接在层级
 
    视图(Hierarchy)里点击眼睛图标, 来临时显示或隐藏某个游戏对象(GameObject)

  这个隐藏并不是在游戏运行时禁用对象, 而只是一个编辑器层面的、方便编辑的视觉工具

csharp 复制代码
f.MonoManager是Unity用来启动和维护C#脚本运行所需最基础环境(比如垃圾回收、程序集加

  载、线程管理)的模块开销, 这个基础环境本身是基于Mono项目的
相关推荐
懒狗跑ai的程序员Brain1 小时前
如何利用粒子系统在unity制作一个烟花(粒子系统学习向)
学习·unity·游戏引擎
xcLeigh2 小时前
Unity基础:材质与纹理入门——给物体穿上“衣服“
unity·游戏引擎·材质
ellis19702 小时前
u3d插件xLua[二]例2:U3DScripting,例3:UIEvent分析
unity·lua
派葛穆12 小时前
Unity-UI 输入框功能
ui·unity·游戏引擎
玖玥拾12 小时前
Unity3D RPG 入门项目(一)开场动画/人物移动/摄像机跟随场景切换
unity·游戏引擎
2401_8949155314 小时前
GEO 搜索优化完整源码从零部署:环境配置、集群搭建全流程
开发语言·python·tcp/ip·算法·unity
WarPigs15 小时前
PC端加载安卓AB包资源显示紫色的问题
unity
scott.cgi18 小时前
Unity使用AndroidX获取,导航栏与虚拟键盘的高度
unity·androidx·keyboard·导航栏高度·虚拟键盘高度·判断键盘关闭·获取虚拟键盘高度
丁小未19 小时前
Unity车机地图Tile流式渲染系统高性能架构方案
unity·架构·ecs·dots·车机系统·车机系统架构图
LONGZETECH1 天前
工业实训仿真设计实践:电机拆装软件的 DAG 流程建模、工具精度分级与数据体系搭建
大数据·算法·unity·架构·汽车