Terraria v1.4.4.9
Terraria source code documentation
All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros

◆ HillClimbing()

System.Threading.PortableThreadPool.HillClimbing.HillClimbing ( )
inline

Definition at line 450 of file PortableThreadPool.cs.

451 {
452 _wavePeriod = AppContextConfigHelper.GetInt32Config("System.Threading.ThreadPool.HillClimbing.WavePeriod", 4, allowNegative: false);
453 _maxThreadWaveMagnitude = AppContextConfigHelper.GetInt32Config("System.Threading.ThreadPool.HillClimbing.MaxWaveMagnitude", 20, allowNegative: false);
454 _threadMagnitudeMultiplier = (double)AppContextConfigHelper.GetInt32Config("System.Threading.ThreadPool.HillClimbing.WaveMagnitudeMultiplier", 100, allowNegative: false) / 100.0;
455 _samplesToMeasure = _wavePeriod * AppContextConfigHelper.GetInt32Config("System.Threading.ThreadPool.HillClimbing.WaveHistorySize", 8, allowNegative: false);
456 _targetThroughputRatio = (double)AppContextConfigHelper.GetInt32Config("System.Threading.ThreadPool.HillClimbing.Bias", 15, allowNegative: false) / 100.0;
457 _targetSignalToNoiseRatio = (double)AppContextConfigHelper.GetInt32Config("System.Threading.ThreadPool.HillClimbing.TargetSignalToNoiseRatio", 300, allowNegative: false) / 100.0;
458 _maxChangePerSecond = AppContextConfigHelper.GetInt32Config("System.Threading.ThreadPool.HillClimbing.MaxChangePerSecond", 4, allowNegative: false);
459 _maxChangePerSample = AppContextConfigHelper.GetInt32Config("System.Threading.ThreadPool.HillClimbing.MaxChangePerSample", 20, allowNegative: false);
460 int int32Config = AppContextConfigHelper.GetInt32Config("System.Threading.ThreadPool.HillClimbing.SampleIntervalLow", 10, allowNegative: false);
461 int int32Config2 = AppContextConfigHelper.GetInt32Config("System.Threading.ThreadPool.HillClimbing.SampleIntervalHigh", 200, allowNegative: false);
462 if (int32Config <= int32Config2)
463 {
464 _sampleIntervalMsLow = int32Config;
465 _sampleIntervalMsHigh = int32Config2;
466 }
467 else
468 {
471 }
472 _throughputErrorSmoothingFactor = (double)AppContextConfigHelper.GetInt32Config("System.Threading.ThreadPool.HillClimbing.ErrorSmoothingFactor", 1, allowNegative: false) / 100.0;
473 _gainExponent = (double)AppContextConfigHelper.GetInt32Config("System.Threading.ThreadPool.HillClimbing.GainExponent", 200, allowNegative: false) / 100.0;
474 _maxSampleError = (double)AppContextConfigHelper.GetInt32Config("System.Threading.ThreadPool.HillClimbing.MaxSampleErrorPercent", 15, allowNegative: false) / 100.0;
475 _samples = new double[_samplesToMeasure];
476 _threadCounts = new double[_samplesToMeasure];
478 }
virtual int Next()
Definition Random.cs:651

References System.Threading.PortableThreadPool.HillClimbing._currentSampleMs, System.Threading.PortableThreadPool.HillClimbing._gainExponent, System.Threading.PortableThreadPool.HillClimbing._maxChangePerSample, System.Threading.PortableThreadPool.HillClimbing._maxChangePerSecond, System.Threading.PortableThreadPool.HillClimbing._maxSampleError, System.Threading.PortableThreadPool.HillClimbing._maxThreadWaveMagnitude, System.Threading.PortableThreadPool.HillClimbing._randomIntervalGenerator, System.Threading.PortableThreadPool.HillClimbing._sampleIntervalMsHigh, System.Threading.PortableThreadPool.HillClimbing._sampleIntervalMsLow, System.Threading.PortableThreadPool.HillClimbing._samples, System.Threading.PortableThreadPool.HillClimbing._samplesToMeasure, System.Threading.PortableThreadPool.HillClimbing._targetSignalToNoiseRatio, System.Threading.PortableThreadPool.HillClimbing._targetThroughputRatio, System.Threading.PortableThreadPool.HillClimbing._threadCounts, System.Threading.PortableThreadPool.HillClimbing._threadMagnitudeMultiplier, System.Threading.PortableThreadPool.HillClimbing._throughputErrorSmoothingFactor, System.Threading.PortableThreadPool.HillClimbing._wavePeriod, System.AppContextConfigHelper.GetInt32Config(), and System.Random.Next().