From bd344e50abb03621c4242f5c4e4bfb2ccee1864d Mon Sep 17 00:00:00 2001 From: Lightczx <1686188646@qq.com> Date: Thu, 7 Dec 2023 10:57:16 +0800 Subject: [PATCH] minor game process optimization --- .../Service/Game/Process/GameProcessService.cs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Game/Process/GameProcessService.cs b/src/Snap.Hutao/Snap.Hutao/Service/Game/Process/GameProcessService.cs index d1f8f00e..e9d6e28a 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Game/Process/GameProcessService.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Game/Process/GameProcessService.cs @@ -32,8 +32,17 @@ internal sealed partial class GameProcessService : IGameProcessService return true; } - return System.Diagnostics.Process.GetProcessesByName(YuanShenProcessName).Length > 0 - || System.Diagnostics.Process.GetProcessesByName(GenshinImpactProcessName).Length > 0; + // Original two GetProcessesByName is O(2n) + // GetProcesses once and manually loop is O(n) + foreach (ref System.Diagnostics.Process process in System.Diagnostics.Process.GetProcesses().AsSpan()) + { + if (process.ProcessName is YuanShenProcessName or GenshinImpactProcessName) + { + return true; + } + } + + return false; } public async ValueTask LaunchAsync(IProgress progress)