internal static void Init(bool systemRequired, GlobalConfig.EOptimizationMode optimizationMode) { if (!Enum.IsDefined(typeof(GlobalConfig.EOptimizationMode), optimizationMode)) { ASF.ArchiLogger.LogNullError(nameof(optimizationMode)); return; } if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { if (systemRequired) { 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 Init(bool systemRequired, GlobalConfig.EOptimizationMode optimizationMode) { if (!Enum.IsDefined(typeof(GlobalConfig.EOptimizationMode), optimizationMode)) { throw new ArgumentNullException(nameof(optimizationMode)); } if (IsWindows) { if (systemRequired) { WindowsKeepSystemActive(); } } 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: throw new ArgumentOutOfRangeException(nameof(optimizationMode)); } }