Skip to content

Commit 70565cd

Browse files
authored
Collect some timing stats on deserializing data files (#6507)
1 parent dee428a commit 70565cd

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

mypy/build.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1777,9 +1777,17 @@ def load_fine_grained_deps(self) -> Dict[str, Set[str]]:
17771777
def load_tree(self, temporary: bool = False) -> None:
17781778
assert self.meta is not None, "Internal error: this method must be called only" \
17791779
" for cached modules"
1780-
data = json.loads(self.manager.metastore.read(self.meta.data_json))
1780+
t0 = time.time()
1781+
raw = self.manager.metastore.read(self.meta.data_json)
1782+
t1 = time.time()
1783+
data = json.loads(raw)
1784+
t2 = time.time()
17811785
# TODO: Assert data file wasn't changed.
17821786
self.tree = MypyFile.deserialize(data)
1787+
t3 = time.time()
1788+
self.manager.add_stats(data_read_time=t1 - t0,
1789+
data_json_load_time=t2 - t1,
1790+
deserialize_time=t3 - t2)
17831791
if not temporary:
17841792
self.manager.modules[self.id] = self.tree
17851793
self.manager.add_stats(fresh_trees=1)

0 commit comments

Comments
 (0)