summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2019-12-12 18:57:13 +0000
committerArmin Kuster <akuster808@gmail.com>2019-12-17 22:08:55 -0800
commit5afad266f2ce55db2038c36f2e49a3c80be9bbfc (patch)
tree5b70d3cc4ecd9de971c5aea7100b2da628e99304
parenta7426c73a8e9fae468414a2c32a533d9c3729405 (diff)
downloadbitbake-5afad266f2ce55db2038c36f2e49a3c80be9bbfc.tar.gz
siggen: Fix performance issue in get_unihash
There is a significant performance issue in get_unihash(). The issue turns out to be the lookups of setscene tasks. We can fix this by using a set() instead of the current list. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 1e561672d039ebfb8cd0e0654a44dcf48513317c)
-rw-r--r--lib/bb/siggen.py6
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/bb/siggen.py b/lib/bb/siggen.py
index dbf510238..2fec8599b 100644
--- a/lib/bb/siggen.py
+++ b/lib/bb/siggen.py
@@ -44,7 +44,7 @@ class SignatureGenerator(object):
self.file_checksum_values = {}
self.taints = {}
self.unitaskhashes = {}
- self.setscenetasks = {}
+ self.setscenetasks = set()
def finalise(self, fn, d, varient):
return
@@ -110,7 +110,7 @@ class SignatureGeneratorBasic(SignatureGenerator):
self.taints = {}
self.gendeps = {}
self.lookupcache = {}
- self.setscenetasks = {}
+ self.setscenetasks = set()
self.basewhitelist = set((data.getVar("BB_HASHBASE_WHITELIST") or "").split())
self.taskwhitelist = None
self.init_rundepcheck(data)
@@ -157,7 +157,7 @@ class SignatureGeneratorBasic(SignatureGenerator):
return taskdeps
def set_setscene_tasks(self, setscene_tasks):
- self.setscenetasks = setscene_tasks
+ self.setscenetasks = set(setscene_tasks)
def finalise(self, fn, d, variant):