From b74b419a0156fbc60423c721165b3741469bc1a1 Mon Sep 17 00:00:00 2001 From: "Carsey, Jaben" Date: Fri, 6 Apr 2018 07:13:52 +0800 Subject: [PATCH] BaseTools: sets are faster to check via "in" due to hashing switch list to set: 1)we dont care about order 2)we only check for membership. then remove ".keys()" from dict looping: allow generators opportunity to optimize Cc: Liming Gao Cc: Yonghong Zhu Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Jaben Carsey Reviewed-by: Yonghong Zhu --- BaseTools/Source/Python/AutoGen/AutoGen.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py b/BaseTools/Source/Python/AutoGen/AutoGen.py index cf6dcc6ab4..390194f428 100644 --- a/BaseTools/Source/Python/AutoGen/AutoGen.py +++ b/BaseTools/Source/Python/AutoGen/AutoGen.py @@ -365,9 +365,9 @@ class WorkspaceAutoGen(AutoGen): MetaFile_cache = {} for Arch in self.ArchList: Platform_cache[Arch] = self.BuildDatabase[self.MetaFile, Arch, Target, Toolchain] - MetaFile_cache[Arch] = [] - for Pkey in Platform_cache[Arch].Modules.keys(): - MetaFile_cache[Arch].append(Platform_cache[Arch].Modules[Pkey].MetaFile) + MetaFile_cache[Arch] = set() + for Pkey in Platform_cache[Arch].Modules: + MetaFile_cache[Arch].add(Platform_cache[Arch].Modules[Pkey].MetaFile) for Inf in self.FdfProfile.InfDict[key]: ModuleFile = PathClass(NormPath(Inf), GlobalData.gWorkspace, Arch) for Arch in self.ArchList: @@ -382,9 +382,9 @@ class WorkspaceAutoGen(AutoGen): for Arch in self.ArchList: if Arch == key: Platform = self.BuildDatabase[self.MetaFile, Arch, Target, Toolchain] - MetaFileList = [] - for Pkey in Platform.Modules.keys(): - MetaFileList.append(Platform.Modules[Pkey].MetaFile) + MetaFileList = set() + for Pkey in Platform.Modules: + MetaFileList.add(Platform.Modules[Pkey].MetaFile) for Inf in self.FdfProfile.InfDict[key]: ModuleFile = PathClass(NormPath(Inf), GlobalData.gWorkspace, Arch) if ModuleFile in MetaFileList: