From 70548dc7bc5b408263da637f1c92e8f5b9506264 Mon Sep 17 00:00:00 2001 From: BrettCleary <27568879+BrettCleary@users.noreply.github.com> Date: Wed, 12 Oct 2022 12:24:58 -0700 Subject: [PATCH 1/2] caching system info --- src/backend/main.ts | 6 +++--- src/backend/utils.ts | 9 ++++++++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/backend/main.ts b/src/backend/main.ts index 85355b16e7..6f41a0a294 100644 --- a/src/backend/main.ts +++ b/src/backend/main.ts @@ -344,7 +344,9 @@ if (!gotTheLock) { app.whenReady().then(async () => { initOnlineMonitor() - const systemInfo = await getSystemInfo() + getSystemInfo().then((systemInfo) => + logInfo(`\n\n${systemInfo}\n`, { prefix: LogPrefix.Backend }) + ) initImagesCache() @@ -355,7 +357,6 @@ if (!gotTheLock) { logInfo(['GOGDL location:', join(...Object.values(getGOGdlBin()))], { prefix: LogPrefix.Gog }) - logInfo(`\n\n${systemInfo}\n`, { prefix: LogPrefix.Backend }) // We can't use .config since apparently its not loaded fast enough. const { language, darkTrayIcon } = await GlobalConfig.get().getSettings() @@ -1001,7 +1002,6 @@ ipcMain.handle( game.logFileLocation, 'System Info:\n' + `${systemInfo}\n` + - '\n' + `Game Settings: ${gameSettingsString}\n` + '\n' + `Game launched at: ${startPlayingDate}\n` + diff --git a/src/backend/utils.ts b/src/backend/utils.ts index 99b48c5f0f..7e1152ed34 100644 --- a/src/backend/utils.ts +++ b/src/backend/utils.ts @@ -247,7 +247,13 @@ async function handleExit(window: BrowserWindow) { app.exit() } +// This won't change while the app is running +// Caching significantly increases performance when launching games +let systemInfoCache = '' export const getSystemInfo = async () => { + if (systemInfoCache !== '') { + return systemInfoCache + } const heroicVersion = getHeroicVersion() const legendaryVersion = await getLegendaryVersion() @@ -276,7 +282,7 @@ export const getSystemInfo = async () => { ? (await execAsync('echo $XDG_SESSION_TYPE')).stdout.replaceAll('\n', '') : '' - return `Heroic Version: ${heroicVersion} + systemInfoCache = `Heroic Version: ${heroicVersion} Legendary Version: ${legendaryVersion} OS: ${distro} KERNEL: ${kernel} ARCH: ${arch} CPU: ${manufacturer} ${brand} @${speed} ${ @@ -285,6 +291,7 @@ CPU: ${manufacturer} ${brand} @${speed} ${ RAM: Total: ${getFileSize(total)} Available: ${getFileSize(available)} GRAPHICS: ${graphicsCards} ${isLinux ? `PROTOCOL: ${xEnv}` : ''}` + return systemInfoCache } type ErrorHandlerMessage = { From f5cdb9646dd16438a32c377ddc1b912b867a3bae Mon Sep 17 00:00:00 2001 From: BrettCleary <27568879+BrettCleary@users.noreply.github.com> Date: Wed, 12 Oct 2022 12:53:04 -0700 Subject: [PATCH 2/2] add back new line --- src/backend/main.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/backend/main.ts b/src/backend/main.ts index 6f41a0a294..d13429fee6 100644 --- a/src/backend/main.ts +++ b/src/backend/main.ts @@ -1002,6 +1002,7 @@ ipcMain.handle( game.logFileLocation, 'System Info:\n' + `${systemInfo}\n` + + '\n' + `Game Settings: ${gameSettingsString}\n` + '\n' + `Game launched at: ${startPlayingDate}\n` +