static void DoBenchmarkBatchedLoremIpsum(EventLog benchLog, long batchSize, long totalSteps, long loremIpsumLength) { Stopwatch sw = new Stopwatch(); sw.Start(); // loremIpsumLength should be less equal than 65535. loremIpsumLength = loremIpsumLength > 65535 ? 65535 : loremIpsumLength; Console.WriteLine("events\tWorking Set(MB)\tPrivate Memory(MB)\tPage File(MB)\tTotal CPU Usage\tDisk Time"); TotalCPUCounter cpuCounter = new TotalCPUCounter(); var text = LoremIpsum.ASCIIText(); Encoding e = System.Text.Encoding.GetEncoding("UTF-8"); string result = new String(text.TakeWhile((c, i) => e.GetByteCount(text.Substring(0, i + 1)) <= loremIpsumLength).ToArray()); DiskUsageCounter diskCounter = new DiskUsageCounter(); MonitorProcesses monitor = new MonitorProcesses(cpuCounter, diskCounter); long batchNum = batchSize / BINNUM; long residualNUM = batchSize % BINNUM; for (int i = 0; i < totalSteps; i++) { DateTime targetTime = DateTime.Now; long currentTime = GetUnixTime(targetTime); Console.Write(String.Format("{0, 8}", i * batchSize)); Task.Run(() => monitor.Run()); for (int j = 0; j < BINNUM; j++) { for (int k = 0; k < batchNum; k++) { // Write an informational entry to the event log. benchLog.WriteEntry(result); } //Thread.Sleep(10); } for (int j = 0; j < residualNUM; j++) { benchLog.WriteEntry(result); } while (GetUnixTime(DateTime.Now) <= currentTime) { Thread.Sleep(1); } } sw.Stop(); Console.Write(String.Format("{0, 8}", totalSteps * batchSize)); monitor.Run(); Console.WriteLine(String.Format("Flow rate: {0} events per second.", (totalSteps * batchSize) / (float)(sw.ElapsedMilliseconds / 1000.0))); Console.WriteLine("Message written to event log."); }
static void DoBenchmarkLoremIpsum(EventLog benchLog, int waitMSec, long totalEvents, long loremIpsumLength) { Stopwatch sw = new Stopwatch(); sw.Start(); // loremIpsumLength should be less equal than 65535. loremIpsumLength = loremIpsumLength > 65535 ? 65535 : loremIpsumLength; Console.WriteLine("events\tWorking Set(MB)\tPrivate Memory(MB)\tPage File(MB)\tTotal CPU Usage\tDisk Time"); TotalCPUCounter cpuCounter = new TotalCPUCounter(); var text = LoremIpsum.ASCIIText(); Encoding e = System.Text.Encoding.GetEncoding("UTF-8"); string result = new String(text.TakeWhile((c, i) => e.GetByteCount(text.Substring(0, i + 1)) <= loremIpsumLength).ToArray()); DiskUsageCounter diskCounter = new DiskUsageCounter(); MonitorProcesses monitor = new MonitorProcesses(cpuCounter, diskCounter); for (int i = 0; i < totalEvents / 10; i++) { if (i % 10 == 0) { Console.Write(String.Format("{0, 8}", i * 10)); Task.Run(() => monitor.Run()); } // Write an informational entry to the event log. benchLog.WriteEntry(result); benchLog.WriteEntry(result); benchLog.WriteEntry(result); benchLog.WriteEntry(result); benchLog.WriteEntry(result); benchLog.WriteEntry(result); benchLog.WriteEntry(result); benchLog.WriteEntry(result); benchLog.WriteEntry(result); benchLog.WriteEntry(result); Thread.Sleep(waitMSec); } sw.Stop(); Console.Write(String.Format("{0, 8}", totalEvents)); monitor.Run(); Console.WriteLine(String.Format("Flow rate: {0} events per second.", totalEvents / (float)(sw.ElapsedMilliseconds / 1000.0))); Console.WriteLine("Message written to event log."); }