21.Unity性能分析工具-Profiler窗口AssetLoading
21.1 知识点
AssetLoading是什么
Asset Loading(资源加载)模块用来监视和分析游戏运行时的资源加载行为,对性能调优、资源管理和加载策略优化都有重要意义。它主要统计游戏在运行时加载资源所消耗的时间和调用信息,可以配合上节课学习的 File Access(资源访问)模块一起使用。
AssetLoading中各参数功能的含义和作用
资源加载(Asset Loading)监视视图

- Other Reads(其他读取):其他类型资源的读取操作,无法归类到下列类别时归入此项,例如某些 ScriptableObject、AssetBundle 元数据等。
- Texture Reads(纹理读取):加载贴图(Textures)时的读取次数和数据量,比如 .png、.jpg、.dds 等纹理资源。
- Virtual Texture Reads(虚拟纹理读取):虚拟纹理系统加载纹理数据时的读取量(Unity 的 Virtual Texturing 功能开启时有效),读取的数据通常是分片(Tiles)的纹理内容。
- Mesh Reads(网格读取):加载网格资源(Mesh)的操作,如 .fbx、.obj 中的几何信息(顶点、索引、UV 等)。
- Audio Reads(音频读取):加载音频文件的读取情况,如 .mp3、.wav、.ogg 等格式。
- Scripting Reads(脚本读取):脚本相关资源的读取,如 .dll 文件、预编译脚本或 IL2CPP 输出的代码块等。
- Entities Reads(实体读取):加载 DOTS(Entity Component System)中的 Entities 资源,适用于基于 ECS 的项目结构。
利用这些数据可以:
- 判断加载瓶颈是否出现在某一类型的资源(如纹理、音频)
- 分析启动时或切场景时读取数据量是否异常
- 配合 File Access Profiler 查找文件 IO 延迟
- 优化 AssetBundle、Resources 加载路径
资源加载(Asset Loading)详细参数

- Index:资源加载条目的序号,按加载顺序排列。
- Source:加载来源,可能是 Resources、AssetBundle、Addressables、StreamingAssets 等。
- Asset Name:资源的完整路径或名称,显示具体加载了哪个资源。
- Thread:加载该资源时运行的线程名称,例如主线程(Main Thread)或后台线程(Worker Thread)。
- Type:加载资源的类型,例如 Texture2D、Mesh、AudioClip、GameObject 等。
- Size:该资源的内存大小,单位通常为字节(B)、KB、MB。
- Marker Type:用于标识该资源加载行为的类型(比如是否为异步加载、预加载等)。
- **Marker Length (ms)**:加载该资源所耗费的时间(毫秒),可用于分析加载慢的问题。
- Frame Count:资源加载跨越了多少帧(有时加载时间长可能会阻塞帧渲染)。
这里的信息可以帮助我们:
- 识别加载开销大的资源(Size 或 Marker Length 过高)
- 判断是否资源加载阻塞了主线程
- 分析是否某些资源频繁加载造成性能问题(比如重复加载)
- 对 Addressables / AssetBundle 的加载行为进行优化分析
AssetLoading对于我们的意义
该模块可以帮助我们:
发现加载卡顿瓶颈
定位是哪个资源、何时加载导致了卡顿。优化资源分布
避免同一帧加载过多资源,建议分帧加载。验证异步加载
保证 Addressables 或自定义异步加载生效。提高首帧性能
分析启动时资源是否加载过多,优化启动流程。避免重复加载
检查是否有重复使用 Resources.Load 导致资源被多次加载。
等等。
总结:使用这两节课学习的 File Access(文件访问)和 Asset Loading(资源加载)两个模块,就可以定位资源加载相关问题,为针对性优化提供数据依据。
21.2 知识点代码
Lesson21_Unity性能分析工具_Profiler窗口_AssetLoading.cs
public class Lesson21_Unity性能分析工具_Profiler窗口_AssetLoading
{
#region 知识点一 Asset Loading是什么
/*
* Asset Loading(资源加载)模块
* 用来监视和分析游戏运行时资源加载行为,对性能调优、资源管理和加载策略优化具有重要意义。
* 主要统计游戏在运行时加载资源所消耗的时间和调用信息。
* 可配合上节课学习的 File Access(资源访问)模块一起使用。
*/
#endregion
#region 知识点二 Asset Loading中各参数功能的含义和作用
/* 思维导图中讲解 */
#endregion
#region 知识点三 Asset Loading对于我们的意义
/*
* 该模块可以帮助我们:
* 1. 发现加载卡顿瓶颈 —— 定位是哪个资源、何时加载导致了卡顿
* 2. 优化资源分布 —— 避免同一帧加载过多资源,建议分帧加载
* 3. 验证异步加载 —— 保证 Addressables 或自定义异步加载生效
* 4. 提高首帧性能 —— 分析启动时资源是否加载过多,优化启动流程
* 5. 避免重复加载 —— 检查是否有重复使用 Resources.Load 导致资源被多次加载
*
* 使用 File Access(文件访问)和 Asset Loading(资源加载)两个模块,
* 即可定位资源加载相关问题,提供数据依据,进行针对性优化。
*/
#endregion
}
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com