protected override IList <int[]> GenerateRunnerInput() { var tests = new List <int[]>(); var totalTestMs = 90 * 1000; var rapidGen = new SleepInputGenerator(totalTestMs, 10, 15); // this is to reveal the CPU/MEM consumption when 10K QPS var totalCC = 128; // 128 is the optimum threads in typical 5 core web server for (var i = 0; i < totalCC; i++) { tests.Add(rapidGen.Generate()); } return(tests); }
private static ResponseDurationTrackerProvider <ResponseDurationTrackerStopWatch, ResponseDurationTrackerConfig, ResponseDurationTracker <ResponseDurationTrackerStopWatch, ResponseDurationTrackerConfig> > Provider = new ResponseDurationTrackerProvider <ResponseDurationTrackerStopWatch, ResponseDurationTrackerConfig, ResponseDurationTracker <ResponseDurationTrackerStopWatch, ResponseDurationTrackerConfig> >(); // declare as attribute of singleton, or can be stored in cache or IoC protected override IList <int[]> GenerateRunnerInput() { var tests = new List <int[]>(); var totalTestMs = 90 * 1000; var slowGen = new SleepInputGenerator(totalTestMs, 200, 2 * 1000); var rapidGen = new SleepInputGenerator(totalTestMs, 2000, 20 * 1000); var totalCC = 128; // 128 is the optimum threads in typical 5 core web server for (var i = 0; i < totalCC / 2; i++) { tests.Add(slowGen.Generate()); tests.Add(rapidGen.Generate()); } return(tests); }