private static bool ShouldRun(Regex filter, IPaulTest paulTest) { if (filter == null) return true; var name = paulTest.GetType().Name; var shouldRun = filter.IsMatch(name); return shouldRun; }
private long RunThreadBased(IPaulTest test) { var stopwatch = Stopwatch.StartNew(); var threads = new Thread[Environment.ProcessorCount]; var interval = iterations / threads.Length; for (var i = 0; i < threads.Length; i++) { var thread = new Thread(() => { for (var j = 0; j < interval; j++) { var player = test.ResolvePlayer(); player.Shoot(); } }); threads[i] = thread; thread.Start(); } for (var i = 0; i < threads.Length; i++) { threads[i].Join(); } stopwatch.Stop(); PrintResult(test, stopwatch); var disposable = test as IDisposable; if (disposable != null) { disposable.Dispose(); } return(stopwatch.ElapsedMilliseconds); }
private long RunWithStop(IPaulTest test) { Console.WriteLine(" Testing {0,-20}", test.GetType().Name); var count = 0; for (var i = 0; i < iterations; i++) { count++; var player = test.ResolvePlayer(); player.Shoot(); if (count == memorySnapshotStep) { CollectSnapshot(i); count = 0; } } PrintResult(test); var disposable = test as IDisposable; if (disposable != null) { disposable.Dispose(); } return(0); }
protected void Run(IPaulTest paulTest, Func <IPaulTest, long> function) { if (ShouldRun(filter, paulTest)) { output.Write(function(paulTest) + "\t"); } else { output.Write("0\t"); } }
private static bool ShouldRun(Regex filter, IPaulTest paulTest) { if (filter == null) { return(true); } var name = paulTest.GetType().Name; var shouldRun = filter.IsMatch(name); return(shouldRun); }
protected void Run(IPaulTest paulTest, Func<IPaulTest, long> function) { if (ShouldRun(filter, paulTest)) { output.Write(function(paulTest) + "\t"); } else { output.Write("0\t"); } }
private void PrintResult(IPaulTest test, Stopwatch stopwatch) { if (results == Results.Total_time) { Console.WriteLine(" Hey {0,-20} - you did it in {1,10}", test.GetType().Name, stopwatch.Elapsed); } else { Console.WriteLine(" Hey {0,-20} - you did {1,10} operations per second", test.GetType().Name, (iterations * oneSecondTicks) / stopwatch.Elapsed.Ticks); } }
private void PrintResult(IPaulTest test, Stopwatch stopwatch) { if (results == Results.Total_time) { Console.WriteLine(" Hey {0,-20} - you did it in {1,10}", test.GetType().Name, stopwatch.Elapsed); } else { Console.WriteLine(" Hey {0,-20} - you did {1,10} operations per second", test.GetType().Name, (iterations * oneSecondTicks) / stopwatch.Elapsed.Ticks); } }
private long RunContinuously(IPaulTest test) { Console.WriteLine(" Testing {0,-20}", test.GetType().Name); for (var i = 0; i < iterations; i++) { var player = test.ResolvePlayer(); player.Shoot(); } PrintResult(test); var disposable = test as IDisposable; if (disposable != null) { disposable.Dispose(); } return 0; }
private long RunContinuously(IPaulTest test) { Console.WriteLine(" Testing {0,-20}", test.GetType().Name); for (var i = 0; i < iterations; i++) { var player = test.ResolvePlayer(); player.Shoot(); } PrintResult(test); var disposable = test as IDisposable; if (disposable != null) { disposable.Dispose(); } return(0); }
private long RunSingleThread(IPaulTest test) { var stopwatch = Stopwatch.StartNew(); for (var i = 0; i < iterations; i++) { var player = test.ResolvePlayer(); player.Shoot(); } stopwatch.Stop(); PrintResult(test, stopwatch); var disposable = test as IDisposable; if (disposable != null) { disposable.Dispose(); } return stopwatch.ElapsedMilliseconds; }
private long RunSingleThread(IPaulTest test) { var stopwatch = Stopwatch.StartNew(); for (var i = 0; i < iterations; i++) { var player = test.ResolvePlayer(); player.Shoot(); } stopwatch.Stop(); PrintResult(test, stopwatch); var disposable = test as IDisposable; if (disposable != null) { disposable.Dispose(); } return(stopwatch.ElapsedMilliseconds); }
private long RunWithStop(IPaulTest test) { Console.WriteLine(" Testing {0,-20}", test.GetType().Name); var count = 0; for (var i = 0; i < iterations; i++) { count++; var player = test.ResolvePlayer(); player.Shoot(); if(count ==memorySnapshotStep) { CollectSnapshot(i); count = 0; } } PrintResult(test); var disposable = test as IDisposable; if (disposable != null) { disposable.Dispose(); } return 0; }
private long RunTaskBased(IPaulTest test) { var stopwatch = Stopwatch.StartNew(); var tasks = new Task[iterations]; for (var i = 0; i < tasks.Length; i++) { tasks[i] = Task.Factory.StartNew(() => { var player = test.ResolvePlayer(); player.Shoot(); }); } Task.WaitAll(tasks); stopwatch.Stop(); PrintResult(test, stopwatch); var disposable = test as IDisposable; if (disposable != null) { disposable.Dispose(); } return(stopwatch.ElapsedMilliseconds); }
private long RunTaskBased(IPaulTest test) { var stopwatch = Stopwatch.StartNew(); var tasks = new Task[iterations]; for (var i = 0; i < tasks.Length; i++) { tasks[i] = Task.Factory.StartNew(() => { var player = test.ResolvePlayer(); player.Shoot(); }); } Task.WaitAll(tasks); stopwatch.Stop(); PrintResult(test, stopwatch); var disposable = test as IDisposable; if (disposable != null) { disposable.Dispose(); } return stopwatch.ElapsedMilliseconds; }
private void PrintResult(IPaulTest test) { Console.WriteLine(" Hey {0,-20} - you're done. Collect snapshot and proceed with enter", test.GetType().Name); Console.ReadLine(); }
private void PrintResult(IPaulTest test) { Console.WriteLine(" Hey {0,-20} - you're done. Collect snapshot and proceed with enter", test.GetType().Name); Console.ReadLine(); }
private long RunThreadBased(IPaulTest test) { var stopwatch = Stopwatch.StartNew(); var threads = new Thread[Environment.ProcessorCount]; var interval = iterations/threads.Length; for (var i = 0; i < threads.Length; i++) { var thread = new Thread(() => { for (var j = 0; j < interval; j++) { var player = test.ResolvePlayer(); player.Shoot(); } }); threads[i] = thread; thread.Start(); } for (var i = 0; i < threads.Length; i++) { threads[i].Join(); } stopwatch.Stop(); PrintResult(test, stopwatch); var disposable = test as IDisposable; if (disposable != null) { disposable.Dispose(); } return stopwatch.ElapsedMilliseconds; }