diff options
author | Benjamin Schubert <ben.c.schubert@gmail.com> | 2019-03-19 09:24:22 +0000 |
---|---|---|
committer | bst-marge-bot <marge-bot@buildstream.build> | 2019-03-29 11:19:49 +0000 |
commit | c38f26cc8c8c65379a1b145bd99429a7cc1e68e1 (patch) | |
tree | 4c656ba064049f7083cce1e14c2da823ef0483aa /buildstream/_loader/loader.py | |
parent | 83c56d548b9a7827399888189a828be3c7c7dfd2 (diff) | |
download | buildstream-c38f26cc8c8c65379a1b145bd99429a7cc1e68e1.tar.gz |
Rework profiler to act as a context manager
Diffstat (limited to 'buildstream/_loader/loader.py')
-rw-r--r-- | buildstream/_loader/loader.py | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/buildstream/_loader/loader.py b/buildstream/_loader/loader.py index 4c2bfec77..965edbee8 100644 --- a/buildstream/_loader/loader.py +++ b/buildstream/_loader/loader.py @@ -25,7 +25,7 @@ from .._exceptions import LoadError, LoadErrorReason from .. import Consistency from .. import _yaml from ..element import Element -from .._profile import Topics, profile_start, profile_end +from .._profile import Topics, PROFILER from .._includes import Includes from .types import Symbol @@ -108,12 +108,11 @@ class Loader(): target_elements = [] for target in targets: - profile_start(Topics.LOAD_PROJECT, target) - _junction, name, loader = self._parse_name(target, rewritable, ticker, - fetch_subprojects=fetch_subprojects) - element = loader._load_file(name, rewritable, ticker, fetch_subprojects) - target_elements.append(element) - profile_end(Topics.LOAD_PROJECT, target) + with PROFILER.profile(Topics.LOAD_PROJECT, target): + _junction, name, loader = self._parse_name(target, rewritable, ticker, + fetch_subprojects=fetch_subprojects) + element = loader._load_file(name, rewritable, ticker, fetch_subprojects) + target_elements.append(element) # # Now that we've resolve the dependencies, scan them for circular dependencies @@ -127,10 +126,8 @@ class Loader(): for element in target_elements ) - profile_key = "_".join(t for t in targets) - profile_start(Topics.CIRCULAR_CHECK, profile_key) - self._check_circular_deps(dummy_target) - profile_end(Topics.CIRCULAR_CHECK, profile_key) + with PROFILER.profile(Topics.CIRCULAR_CHECK, "_".join(targets)): + self._check_circular_deps(dummy_target) ret = [] # @@ -138,9 +135,9 @@ class Loader(): # for element in target_elements: loader = element._loader - profile_start(Topics.SORT_DEPENDENCIES, element.name) - loader._sort_dependencies(element) - profile_end(Topics.SORT_DEPENDENCIES, element.name) + with PROFILER.profile(Topics.SORT_DEPENDENCIES, element.name): + loader._sort_dependencies(element) + # Finally, wrap what we have into LoadElements and return the target # ret.append(loader._collect_element(element)) |