diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-12-12 18:57:13 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-12-12 18:57:15 +0000 |
commit | 1e561672d039ebfb8cd0e0654a44dcf48513317c (patch) | |
tree | 974c9abb251fe2f2e689bb2e57bf70bdc9d34160 | |
parent | 99d46107ccfcec576238d32cfe7903440857038d (diff) | |
download | bitbake-1e561672d039ebfb8cd0e0654a44dcf48513317c.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>
-rw-r--r-- | lib/bb/siggen.py | 6 |
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): |