private static void Relaxation(PrepInfo info) { Process.GetCurrentProcess().ProcessorAffinity = info.affinity; Process.GetCurrentProcess().PriorityClass = info.processPriority; Thread.CurrentThread.Priority = info.threadPriority; prepared = false; }
/// <summary>Create stable environment to achieve consistent results</summary> private static PrepInfo Preparation() { if (prepared) { throw new Exception("Cannot run two performance testers at once"); } prepared = true; var info = new PrepInfo { affinity = Process.GetCurrentProcess().ProcessorAffinity, processPriority = Process.GetCurrentProcess().PriorityClass, threadPriority = Thread.CurrentThread.Priority }; Process.GetCurrentProcess().ProcessorAffinity = new IntPtr(2); Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.High; Thread.CurrentThread.Priority = ThreadPriority.Highest; return(info); }