Disable regex cache for MinMemoryUsage mode

This commit is contained in:
JustArchi
2018-08-17 19:20:27 +02:00
parent 742ddfecac
commit 307e69c48d
2 changed files with 17 additions and 3 deletions

View File

@@ -22,6 +22,7 @@
using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Text.RegularExpressions;
using ArchiSteamFarm.Localization;
namespace ArchiSteamFarm {
@@ -29,7 +30,7 @@ namespace ArchiSteamFarm {
internal static bool IsUnix => RuntimeInformation.IsOSPlatform(OSPlatform.Linux) || RuntimeInformation.IsOSPlatform(OSPlatform.OSX);
internal static string Variant => RuntimeInformation.OSDescription.Trim();
internal static void Init(bool systemRequired) {
internal static void Init(bool systemRequired, GlobalConfig.EOptimizationMode optimizationMode) {
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) {
DisableQuickEditMode();
@@ -37,6 +38,19 @@ namespace ArchiSteamFarm {
KeepWindowsSystemActive();
}
}
switch (optimizationMode) {
case GlobalConfig.EOptimizationMode.MaxPerformance:
// No specific tuning required for now, ASF is optimized for max performance by default
break;
case GlobalConfig.EOptimizationMode.MinMemoryUsage:
// We can disable regex cache which will slightly lower memory usage (for a huge performance hit)
Regex.CacheSize = 0;
break;
default:
ASF.ArchiLogger.LogGenericError(string.Format(Strings.WarningUnknownValuePleaseReport, nameof(optimizationMode), optimizationMode));
return;
}
}
internal static void UnixSetFileAccessExecutable(string path) {
@@ -129,4 +143,4 @@ namespace ArchiSteamFarm {
}
}
}
}
}

View File

@@ -197,7 +197,7 @@ namespace ArchiSteamFarm {
ParsePostInitArgs(args);
}
OS.Init(SystemRequired);
OS.Init(SystemRequired, GlobalConfig.OptimizationMode);
await InitGlobalDatabaseAndServices().ConfigureAwait(false);