1
0
Fork 0
mirror of synced 2024-09-28 23:41:29 +12:00

Cache registry files for performance

Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
This commit is contained in:
lennard 2023-01-11 01:42:03 +02:00 committed by loathingKernel
parent 1ac1fd89f8
commit 2258d87c83
No known key found for this signature in database
GPG key ID: CE0C72D0B53821FD

View file

@ -256,7 +256,8 @@ class RareGame(RareGameSlim):
self.state = RareGame.State.IDLE self.state = RareGame.State.IDLE
self.signals.game.finished.emit(self.app_name) self.signals.game.finished.emit(self.app_name)
__metadata_json: Dict = None __registry_cache: Optional[Dict] = None
__metadata_json: Optional[Dict] = None
@staticmethod @staticmethod
def __load_metadata_json() -> Dict: def __load_metadata_json() -> Dict:
@ -632,8 +633,14 @@ class RareGame(RareGameSlim):
# TODO cache this line # TODO cache this line
t = time.time() t = time.time()
reg = read_registry("system.reg", wine_prefix) if self.__registry_cache is None:
print(f"Read reg file {self.app_name}: {time.time() - t}s") RareGame.__registry_cache = {}
if wine_prefix in self.__registry_cache.keys():
reg = self.__registry_cache[wine_prefix]
else:
reg = read_registry("system.reg", wine_prefix)
RareGame.__registry_cache[wine_prefix] = reg
logger.debug(f"Read reg file {self.app_name}: {time.time() - t}s")
# TODO: find a better solution # TODO: find a better solution
reg_path = reg_path.replace("\\", "\\\\").replace("SOFTWARE", "Software").replace("WOW6432Node", "Wow6432Node") reg_path = reg_path.replace("\\", "\\\\").replace("SOFTWARE", "Software").replace("WOW6432Node", "Wow6432Node")