---
title: "loading.checkconsistency editor only 编辑器上这个比较耗时，请问是做什么的，如何优化"
author: "石心.Yong"
published_by: "Perrin Yong"
canonical: https://www.pystone.net/notes/uwa-answer-loading-check-consistency-editor-cost/
type: note
content_role: source
source_type: "source"
visibility: public
id_stability: rename-stable
source_path: "10-计算机、信息技术与工程/05-游戏图形与运行时/我的UWA问答/2021-05-14 - loading.checkconsistency editor only 编辑器上这个比较耗时，请问是做什么的，如何优化.md"
content_hash: f32bc76be8d721ada79d1edf4a5ce4cde8324ed9d5dc6b8eae486720869497cb
knowledge_version: 224c990773de.5fa8af6e39fa
site_commit: 224c990773de166d23a886306577dd90379529ce
notes_commit: 5fa8af6e39fa3891d1b9b4832bfa6c4e0ecaaf0a
---
# loading.checkconsistency editor only 编辑器上这个比较耗时，请问是做什么的，如何优化

> **note · 我的 UWA 问答**
> 本文收录我在 UWA 问答发表的公开回答。问题内容归原提问者；回答保留当时语境，技术结论可能受 Unity 版本、平台和项目条件限制。

## 问题

![image.png](/media/7f9f77529e2d00f1acb5.png)

- 提问者：cccccc
- 提问时间：2021-05-14 01:32:00

## 我的回答

我把之前的回答Copy过来好了（https://answer.uwa4d.com/question/60963d386bb31032f979156e）：

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

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

![image.png](/media/e9a45d01dc4537230382.png)

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

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

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

![image.png](/media/2a1e636d94d0888dee4f.png)

图片来源：https://networm.me/2019/06/23/unity-has-stopped-working/

- 回答时间：2021-05-14 02:09:47
- 最后更新：2021-05-14 02:10:35
- 采纳状态：已采纳

## 来源与关系

- 上位集合：[我的 UWA 问答](https://www.pystone.net/notes/my-uwa-answers/)
- UWA 标签：资源管理
- 原始问题：[loading.checkconsistency editor only 编辑器上这个比较耗时，请问是做什么的，如何优化](https://answer.uwa4d.com/question/609cf2106bb31032f97916f2)
- 源页最后更新：2021-12-11 06:14:29
