summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2013-09-16 07:33:48 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-09-17 14:09:37 +0100
commite63448d9ee331b0f45fb9a0197d0dbee49eb2fa0 (patch)
treea1283442180b3ab0c56929153fcdc2df79e2a468
parentf682b8b83d21d576160bac8dc57c4c989b4dc555 (diff)
downloadbitbake-e63448d9ee331b0f45fb9a0197d0dbee49eb2fa0.tar.gz
data: Use direct iteration, not keys()
Profiling shows the creation of keys() has overhead and we're better using an iterator rather than the memory associated with the huge list of keys when iterating the whoe datastore. We minimise the number of times we do this to twice only per recipe. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/data.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/bb/data.py b/lib/bb/data.py
index e6d523210..beaf08960 100644
--- a/lib/bb/data.py
+++ b/lib/bb/data.py
@@ -148,7 +148,7 @@ def expandKeys(alterdata, readdata = None):
readdata = alterdata
todolist = {}
- for key in keys(alterdata):
+ for key in alterdata:
if not '${' in key:
continue
@@ -341,7 +341,7 @@ def build_dependencies(key, keys, shelldeps, vardepvals, d):
def generate_dependencies(d):
- keys = set(key for key in d.keys() if not key.startswith("__"))
+ keys = set(key for key in d if not key.startswith("__"))
shelldeps = set(key for key in keys if d.getVarFlag(key, "export") and not d.getVarFlag(key, "unexport"))
vardepvals = set(key for key in keys if d.getVarFlag(key, "vardepvalue"))