static PerformaceTestResult PerfTest(bool enableFileWatcher, bool enableCompilation, bool disableGlobalMembers) { var result = new PerformaceTestResult(); Stopwatch init = new Stopwatch(); init.Start(); using (var runner = new ReactRunner(@"D:\work\Olympic\BookingEngine\Build\Olympic.BookingEngine\assets\js\bundle.js", enableFileWatcher, enableCompilation, disableGlobalMembers, "global.SuperChargedReact.bootstrapper", new JsonSerializerSettings())) { init.Stop(); result.InitializationTime = init.ElapsedMilliseconds; var times = new List <long>(); Console.WriteLine("Benchmarking html generation"); var props = File.ReadAllText("props.json"); for (int i = 0; i < 20; i++) { init.Reset(); string outputStr = ""; init.Start(); ReactPerformaceMeasurements measurements; var settings = new RenderSettings("reactApp", new { testString = "testString" }, "/search/AccommodationOnly"); runner.Execute(settings, out outputStr, out measurements); init.Stop(); times.Add(init.ElapsedMilliseconds); // Console.WriteLine(init.ElapsedMilliseconds); } result.Iterations = times.Count; result.Average = times.Average(); result.First5GenerationsAverage = times.Take(5).Average(); result.Last10GenerationsAverage = times.Skip(times.Count - 10).Average(); result.QuickestGeneration = times.Min(); result.LongestGeneration = times.Max(); } return(result); }
static PerformaceTestResult PerfTest(bool enableFileWatcher, bool enableCompilation, bool disableGlobalMembers) { var result = new PerformaceTestResult(); Stopwatch init = new Stopwatch(); init.Start(); using (var runner = new ReactRunner(@"D:\work\Olympic\BookingEngine\Build\Olympic.BookingEngine\assets\js\bundle.js", enableFileWatcher, enableCompilation, disableGlobalMembers, new JsonSerializerSettings())) { init.Stop(); result.InitializationTime = init.ElapsedMilliseconds; var times = new List<long>(); Console.WriteLine("Benchmarking html generation"); var props = File.ReadAllText("props.json"); for (int i = 0; i < 20; i++) { init.Reset(); string outputStr = ""; init.Start(); ReactPerformaceMeasurements measurements; runner.Execute("reactApp", "/search/AccommodationOnly", props, out outputStr, out measurements); init.Stop(); times.Add(init.ElapsedMilliseconds); // Console.WriteLine(init.ElapsedMilliseconds); } result.Iterations = times.Count; result.Average = times.Average(); result.First5GenerationsAverage = times.Take(5).Average(); result.Last10GenerationsAverage = times.Skip(times.Count - 10).Average(); result.QuickestGeneration = times.Min(); result.LongestGeneration = times.Max(); } return result; }