private static void DoMonitor(long loggingSteps) { Stopwatch sw = new Stopwatch(); sw.Start(); Console.WriteLine("steps\tWorking Set(MB)\tPrivate Memory(MB)\tPage File(MB)\tTotal CPU Usage\tDisk Time"); TotalCPUCounter cpuCounter = new TotalCPUCounter(); DiskUsageCounter diskCounter = new DiskUsageCounter(); MonitorProcesses monitor = new MonitorProcesses(cpuCounter, diskCounter); for (int i = 0; i < loggingSteps; i++) { DateTime targetTime = DateTime.Now; long currentTime = GetUnixTime(targetTime); Console.Write(String.Format("{0, 8}", i)); Task.Run(() => monitor.Run()); while (GetUnixTime(DateTime.Now) <= currentTime) { Thread.Sleep(1); } } sw.Stop(); Console.Write(String.Format("{0, 8}", loggingSteps)); monitor.Run(); Console.WriteLine(String.Format("elapsed time(second): {0}", (float)(sw.ElapsedMilliseconds / 1000.0))); Console.WriteLine("Minotoring done."); }
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."); }
private static void DoBenchMark(int rate, long loggingSteps, int optionLength, string outputFile) { Stopwatch sw = new Stopwatch(); sw.Start(); Console.WriteLine("steps\tWorking Set(MB)\tPrivate Memory(MB)\tPage File(MB)\tTotal CPU Usage\tDisk Time"); TotalCPUCounter cpuCounter = new TotalCPUCounter(); DiskUsageCounter diskCounter = new DiskUsageCounter(); MonitorProcesses monitor = new MonitorProcesses(cpuCounter, diskCounter); long batchNum = rate / BINNUM; long residualNUM = rate % BINNUM; Generator generator = new Generator(optionLength); for (int i = 0; i < loggingSteps; i++) { DateTime targetTime = DateTime.Now; long currentTime = GetUnixTime(targetTime); Console.Write(String.Format("{0, 8}", i)); Task.Run(() => monitor.Run()); using (StreamWriter file = new StreamWriter(outputFile, true)) { for (int j = 0; j < BINNUM; j++) { for (int k = 0; k < batchNum; k++) { file.WriteLine(generator.Run()); } Thread.Sleep(10); } for (int j = 0; j < residualNUM; j++) { file.WriteLine(generator.Run()); } } while (GetUnixTime(DateTime.Now) <= currentTime) { Thread.Sleep(1); } } sw.Stop(); Console.Write(String.Format("{0, 8}", loggingSteps)); monitor.Run(); Console.WriteLine(String.Format("elapsed time(second): {0}", (float)(sw.ElapsedMilliseconds / 1000.0))); Console.WriteLine("Message written to file."); }
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."); }
static void DoBenchmark(EventLog benchLog, int waitMSec, long totalEvents) { Stopwatch sw = new Stopwatch(); sw.Start(); Console.WriteLine("events\tWorking Set(MB)\tPrivate Memory(MB)\tPage File(MB)\tTotal CPU Usage\t%Disk Time"); TotalCPUCounter cpuCounter = new TotalCPUCounter(); 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(String.Format("Writing to event log. {0} times.", i)); benchLog.WriteEntry("ⒻⓁuenⓉⒹ™"); benchLog.WriteEntry("日本語による説明"); benchLog.WriteEntry("สวัสดีจาก Fluentd!"); benchLog.WriteEntry("Привет, от Fluentd."); benchLog.WriteEntry("Γεια σου, από την Fluentd."); benchLog.WriteEntry("مرحبًا ، من Fluentd."); benchLog.WriteEntry("हाय, Fluentd से!"); benchLog.WriteEntry("We ❤ Fluentd!(●'◡'●)"); benchLog.WriteEntry("Logging is fun! 😀😁😍🤩😋"); 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."); }