Загрузка данных


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");
    }
}