using System;
using System.Diagnostics;
using System.Threading;
public class Program
{
private static long _totalElapsedMs = 0;
private static long _maxDuration = 0;
public static void Main()
{
ProcessFile("logs/server-1.log");
}
private static void ProcessFile(string path)
{
Discover();
Read();
Parse();
Report();
Total();
}
private static void Discover()
{
var sw = Stopwatch.StartNew();
Thread.Sleep(200);
sw.Stop();
Console.WriteLine($"Discover: {sw.ElapsedMilliseconds} ms");
UpdateMax(sw.ElapsedMilliseconds);
}
private static void Read()
{
var sw = Stopwatch.StartNew();
Thread.Sleep(20);
sw.Stop();
Console.WriteLine($"Read: {sw.ElapsedMilliseconds} ms");
UpdateMax(sw.ElapsedMilliseconds);
}
private static void Parse()
{
var sw = Stopwatch.StartNew();
Thread.Sleep(20);
sw.Stop();
Console.WriteLine($"Parse: {sw.ElapsedMilliseconds} ms");
UpdateMax(sw.ElapsedMilliseconds);
}
private static void Report()
{
var sw = Stopwatch.StartNew();
Thread.Sleep(270);
sw.Stop();
Console.WriteLine($"Report: {sw.ElapsedMilliseconds} ms");
UpdateMax(sw.ElapsedMilliseconds);
}
private static void UpdateMax(long duration)
{
if (duration > _maxDuration)
{
_maxDuration = duration;
}
}
private static void Total()
{
var sw = new Stopwatch();
sw.Start();
Thread.Sleep(27);
sw.Stop();
Console.WriteLine($"Total: {sw.ElapsedMilliseconds} ms");
Console.WriteLine($"Longest: {_maxDuration} ms");
}
}