diff --git a/mypy/build.py b/mypy/build.py index bc6d69a17b20..861bdb1e2795 100644 --- a/mypy/build.py +++ b/mypy/build.py @@ -1777,9 +1777,17 @@ def load_fine_grained_deps(self) -> Dict[str, Set[str]]: def load_tree(self, temporary: bool = False) -> None: assert self.meta is not None, "Internal error: this method must be called only" \ " for cached modules" - data = json.loads(self.manager.metastore.read(self.meta.data_json)) + t0 = time.time() + raw = self.manager.metastore.read(self.meta.data_json) + t1 = time.time() + data = json.loads(raw) + t2 = time.time() # TODO: Assert data file wasn't changed. self.tree = MypyFile.deserialize(data) + t3 = time.time() + self.manager.add_stats(data_read_time=t1 - t0, + data_json_load_time=t2 - t1, + deserialize_time=t3 - t2) if not temporary: self.manager.modules[self.id] = self.tree self.manager.add_stats(fresh_trees=1)