Profiler EditorOnly [Loading.CheckConsistency [Editor Onlye]]

 项目开发中,发现在加载角色模型时卡顿比较严重,Profiger工具定位到是这里延迟比较多,上网查了一下原因,这里记录一下:

ReadObject实际上是在加载之后,对Object进行反序列化。一个prefab反序列化后,会有大量的Object。IntegrateAllThreadedObjects会遍历这些Object,而Loading.CheckConsistency就是在遍历这些Object时,对数据进行一致性检验。

所谓一致性检验,就是比如,对下图prefab的序列化文件,会检查两个红框中的fileID是否一致。


图片来源:https://www.cnblogs.com/luguoshuai/p/12323186.html。 如这篇博文所讲,如果两个fileID不一致,会有CheckConsistency的报错。

为什么只在Editor下进行一致性检验,而打包后Runtime不需要检验呢? 笔者推测是在打包的时候已经对所有对象都检验过了,Runtime就不需要检验,也避免了检验带来的高耗时。

证据如下图,某次打包的报错堆栈里面,包含了CheckConsistency的步骤:

实机调试:

 只在Editor下进行一致性检验,而打包后实机运行是不会有这部分检测的。

解决办法: 

Porject Settings->Editor->Mode改成Force Binary 

上述问题回答转载自: 

游戏性能卡顿 -- UWA问答 | 游戏开发者互动问答社区 | 侑虎科技

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值