当前位置: 首页 > news >正文

1.8 Memory

1.Memory简介

2.Memory中各参数的功能和作用


1.Memory简介

1).Memory(内存)模块它是unity中监视内存使用情况的关键工具, 它能帮助我们识别哪些资源在占有大量内存,是否存在内存泄露或垃圾回收频繁等问题2).游戏中如果出现以下问题, 可以重点观察memorya.游戏卡顿, 掉帧- 表现: 游戏突然变慢, 不定期小卡顿, 操作延迟等- 可能原因: 内存不足导致系统频繁进行垃圾回收(GC), 降低游戏帧率b.闪退, 崩溃- 表现: 玩着突然黑屏突出, 特定场景(如加载大地图等)崩溃- 可能原因: 设备分配不出更多内存, 系统强制杀掉进程c.加载时间变长- 表现: 加载界面等待时间变长, 场景切换明显卡顿- 可能原因: 加载资源时需要更多内存, 系统调度与GC频繁运行d.发热严重, 掉电快- 表现: 手机发烫严重, 电池消耗快- 可能原因: 设备内存使用到达极限, 系统/游戏频繁调度内存资源, CPU, GPU都高负荷运转e.低端设备无法运行- 表现: 打开即闪退, 进主界面就奔溃- 可能原因: 老旧设备的可用内存更少, 超出后甚至无法加载首屏

2.Memory中各参数的功能和作用

在这里插入图片描述

a.Total Used Memory已使用的内存总量(包括纹理, 网格, 对象, 脚本等所有内存)b.Texture Memory贴图纹理使用的内存总量, 通常是内存占用的最大部分c.Mesh Memory网格使用的内存总量(顶点, 索引缓冲等)和场景中物体数量密切相关d.Material Count材质数量, 材质越多越难合批, 内存占用也高e.Object Count内存中的UnityEngine.Object实例总数, 包括贴图, 网格, 脚本, GameObjectf.GC Used MemoryGC(托管堆)使用的内存(堆已分配但仍被使用)g.GC Allocated In Frame该帧分配的托管堆内存

在这里插入图片描述

a.Normalized(规范化)勾选后可以帮助我们分析内存是否稳定, 对比不同类型资源的内存占比变化b.Total Committed Memory(总提交内存)表示Unity总共已分配的内存(虚拟内存), 包括系统预留 + 实际使用- Tracked Memory(跟踪的内存, 即Memory Profiler能看见的部分), 包括托管堆内存,图形资源, 音视频等In Use表示实际使用量, Reserved表示预留内存- Untracked Memory(未跟踪的内存), Unity已使用但未跟踪的内存总量, 比如本机插件, Mono或IL2CPP的元数据c.Total Memory Breakdown(总内存细分)表示会显示具体为Unity的哪些子系统分配了多少内存- Managed Head托管堆内存使用情况(即由C#脚本分配的对象内存), 分为正在使用/预留内存- Graphics & Graphics Driver图形/图形驱动程序分配的内存- Audio音效系统预估内存使用量- Video视频系统预估内存使用量- Other其它系统内存使用情况, 未归类但可追踪的内存, 如Unity编辑器自身的一些缓存结构- ProfilerUnity Profiler本身占用的内存(采样数据, 快照)- Untracked Memory内存性能分析器无法追踪的内存使用量d.Object Stats(对象统计信息)表示资源类对象的数量与内存分布概括- Textures已加载的纹理总数以及使用的内存- Meshes已加载的网格总数以及使用的内存- Materials已加载的材质总数以及使用的内存- Animations Clips已加载的动画剪辑总数以及使用的内存- Assets已加载的资源总数- Game Objects场景中的游戏对象实例的总数- Scene ObjectsScene中所有对象总数, 包含GameObject, 组件以及场景中不属于资源的内容- GC allocated in frame该帧分配的托管堆内存数量和总大小

:对于空场景都有Textures, Meshs等对象的分配和内存占用; 因为unity即使是空场景, 也会默认加载一些内建资源, 比如内置字体, 编辑器用到的各种图标, GUI样式, Gizmos相关资源Profiler自己的资源, 这些内容其实不属于游戏资源
http://www.dtcms.com/a/358200.html

相关文章:

  • vue表格底部添加合计栏,且能跟主表同时滑动
  • 【Linux基础】深入理解计算机启动原理:MBR主引导记录详解
  • U-Boot移植过程中的关键目录文件解析
  • 循迹小车控制实验:实验介绍
  • 基于FPGA的简易医疗呼叫器实现,包含testbench
  • Linux 830 shell:expect,ss -ant ,while IFS=read -r line,
  • 在 VS2017 中使用 Visual Leak Detector 检测内存泄漏(记录一下 以前开发中使用过)
  • 数据结构(C语言篇):(七)双向链表
  • 学习游戏制作记录(视觉上的优化)
  • GRPO(组相对策略优化):大模型强化学习的高效进化
  • MySQL独占间隙锁为什么会互相兼容?
  • 基于Ultralytics YOLO通用目标检测训练体系与PyTorch EfficientNet的图像分类体系实现
  • 用Git在 Ubuntu 22.04(Git 2.34.1)把 ROS 2 工作空间上传到全新的 GitHub 仓库 步骤
  • MCU启动过程简介
  • 为多种业态注入智能化发展新活力的智慧地产开源了
  • Java 常见异常系列:ClassNotFoundException 类找不到
  • Qt线程提升:深度指南与最佳实践
  • 操作系统上的Docker安装指南:解锁容器化新世界
  • 《潮汐调和分析原理和应用》之四S_Tide使用1
  • 一个wordpress的网站需要什么样的服务器配置
  • 数据结构(力扣刷题)
  • 【gflags】安装与使用
  • LangChain实战(五):Document Loaders - 从多源加载数据
  • ARM 裸机开发 知识点
  • 【70页PPT】WMS助力企业数字化转型(附下载方式)
  • C++速成指南:从基础到进阶
  • WebGIS视角:体感温度实证,哪座“火炉”火力全开?
  • 【AI基础:深度学习】30、深度解析循环神经网络与卷积神经网络:核心技术与应用实践全攻略
  • BMC-differences between the following App Visibility event classes
  • 基于开源AI智能名片链动2+1模式S2B2C商城小程序的用户活跃度提升与价值挖掘策略研究