Loading.UpdatePreloading是什么东西,为什么会突然那么高?
Loading.UpdatePreloading是什么东西,为什么会突然那么高?
https://answer.uwa4d.com/question/58d25cd07dc35e7f0efb4758
请问这个Loading.UpdatePreloading是什么东西,为什么会突然那么高?一般情况下有没有什么优化的办法?
Unity Script Resource Management
评论 分享
2条回复
uwa_Ren回答于 4 年前
已解决
这是Unity引擎最主要的加载函数。该项一般在切换场景时或主动动态加载资源时较大。 一般来说,加载资源越多、越复杂,则其反映的Loading.UpdatePreloading耗时则越大。
优化之前,必须先定位该函数的CPU占用瓶颈。下图则为我们的案例项目,Loading.UpdatePreloading函数在UWA测评报告中的总体CPU分配情况。通过这个堆栈信息,开发团队就可以对函数的耗时分配一目了然,从而有的放矢地进行优化。
评论 分享
喵小逗回答于 2 年前
补充一下Loading.UpdatePreloading里面常见的几个堆栈含义及建议:
- Shader.Parse:对应Shader加载解析,可参考Unity加载模块深度解析(Shader篇)一文进行优化。
- Shader.CreateGPUProgram:参考这个问答如何理解Shader.Parse 和 Shader.CreateGpuProgram中@Xin的回答
- Loading.ReadObject:资源加载,关注资源管理,包括资源格式、AB加载方式、缓存策略等等,有几篇Blog可以作为参考:
Unity加载模块深度解析之动画资源
Unity加载模块深度解析之纹理资源
Unity加载模块深度解析之网格资源 - Loading.LockPersistentManager:异步资源加载,关注使用异步加载方式加载的资源的资源管理;
- GarbageCollectAssetsProfile:Resources.UnloadUnusedAssets相关的耗时,一般会包含GC.MarkDependencies、GC.DeleteUnusedAssets等,关注项目中的GameObject数量及Component及Assets数量,避免此项峰值过高;