diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-12-12 18:57:13 +0000 |
---|---|---|
committer | Armin Kuster <akuster808@gmail.com> | 2019-12-17 22:08:55 -0800 |
commit | 5afad266f2ce55db2038c36f2e49a3c80be9bbfc (patch) | |
tree | 5b70d3cc4ecd9de971c5aea7100b2da628e99304 | |
parent | a7426c73a8e9fae468414a2c32a533d9c3729405 (diff) | |
download | bitbake-contrib-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.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): |