From f37ab9431b963a065751c8d4e0f487e3b3a6cae4 Mon Sep 17 00:00:00 2001 From: Alexander Schepanovski Date: Tue, 23 Jul 2019 15:29:49 +0700 Subject: [PATCH] perf: stop on first changed thing in Stage.changed() --- dvc/stage.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/dvc/stage.py b/dvc/stage.py index 509d49a62..8ac073c8c 100644 --- a/dvc/stage.py +++ b/dvc/stage.py @@ -277,8 +277,9 @@ class Stage(object): return False def changed(self): - ret = any( - [self._changed_deps(), self._changed_outs(), self._changed_md5()] + # Short-circuit order: stage md5 is fast, deps are expected to change + ret = ( + self._changed_md5() or self._changed_deps() or self._changed_outs() ) if ret: