From 213ae07750fc7532e8ba62a234e958388d1f0359 Mon Sep 17 00:00:00 2001 From: Yonghong Zhu Date: Tue, 29 Mar 2016 12:59:43 +0800 Subject: BaseTools: cache the defined Guid tool to improve the performance Current GenFds Tool class GuidSection() is parsing the tools_def.txt for every GUID'ed section that has a GUID defined tool, it cause a bad performance. so this patch cache the defined Guid tool to improve the performance. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Yonghong Zhu Reviewed-by: Liming Gao --- BaseTools/Source/Python/GenFds/GuidSection.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'BaseTools/Source/Python/GenFds/GuidSection.py') diff --git a/BaseTools/Source/Python/GenFds/GuidSection.py b/BaseTools/Source/Python/GenFds/GuidSection.py index cc0c05a28c..ac5ae585f9 100644 --- a/BaseTools/Source/Python/GenFds/GuidSection.py +++ b/BaseTools/Source/Python/GenFds/GuidSection.py @@ -1,7 +1,7 @@ ## @file # process GUIDed section generation # -# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.
+# Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -268,6 +268,10 @@ class GuidSection(GuidSectionClassObject) : if Target + '_' + ToolChain + '_' + Arch not in self.KeyStringList: self.KeyStringList.append(Target + '_' + ToolChain + '_' + Arch) + if GenFdsGlobalVariable.GuidToolDefinition: + if self.NameGuid in GenFdsGlobalVariable.GuidToolDefinition.keys(): + return GenFdsGlobalVariable.GuidToolDefinition[self.NameGuid] + ToolDefinition = ToolDefClassObject.ToolDefDict(GenFdsGlobalVariable.ConfDir).ToolsDefTxtDictionary ToolPathTmp = None ToolOption = None @@ -298,7 +302,7 @@ class GuidSection(GuidSectionClassObject) : if ToolPathTmp != ToolPath: EdkLogger.error("GenFds", GENFDS_ERROR, "Don't know which tool to use, %s or %s ?" % (ToolPathTmp, ToolPath)) - + GenFdsGlobalVariable.GuidToolDefinition[self.NameGuid] = (ToolPathTmp, ToolOption) return ToolPathTmp, ToolOption -- cgit v1.2.3