From 06bb244da945303ecb1414ee797e3e0871a8fd12 Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Wed, 17 Nov 2021 14:53:55 -0500 Subject: [PATCH 1/2] mypy/build: Use _load_json_file in load_tree --- mypy/build.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/mypy/build.py b/mypy/build.py index 06d5ac3f72cf..faad4c94122f 100644 --- a/mypy/build.py +++ b/mypy/build.py @@ -1978,17 +1978,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 = _load_json_file(self.meta.data_json, self.manager, "Load tree ", + "Could not load tree: ") + if data is None: + return None + 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) + t1 = time.time() + self.manager.add_stats(deserialize_time=t1 - t0) if not temporary: self.manager.modules[self.id] = self.tree self.manager.add_stats(fresh_trees=1) From 7bac38b3635a5129aa0d1006d356700a26bf66dd Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Thu, 18 Nov 2021 18:13:37 -0500 Subject: [PATCH 2/2] mypy/build: re-add data_json_load_time metric --- mypy/build.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mypy/build.py b/mypy/build.py index faad4c94122f..3ea38e687333 100644 --- a/mypy/build.py +++ b/mypy/build.py @@ -1095,7 +1095,9 @@ def _load_json_file(file: str, manager: BuildManager, if manager.verbosity() >= 2: manager.trace(log_success + data.rstrip()) try: + t1 = time.time() result = json.loads(data) + manager.add_stats(data_json_load_time=time.time() - t1) except json.JSONDecodeError: manager.errors.set_file(file, None) manager.errors.report(-1, -1,