From 762c7ac73a7551e16834b7186d1989c843c4bbcc Mon Sep 17 00:00:00 2001 From: bluextx Date: Sat, 11 Jan 2025 09:17:49 +0300 Subject: [PATCH] Added performance monitoring and improved service registration organization --- .../Process/QueuePipeline.cs | 7 +++-- source/LootDumpProcessor/Program.cs | 26 +++++++++++-------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/source/LootDumpProcessor/Process/QueuePipeline.cs b/source/LootDumpProcessor/Process/QueuePipeline.cs index 6e5be50..19018b7 100644 --- a/source/LootDumpProcessor/Process/QueuePipeline.cs +++ b/source/LootDumpProcessor/Process/QueuePipeline.cs @@ -1,4 +1,5 @@ using System.Collections.Concurrent; +using System.Diagnostics; using LootDumpProcessor.Model.Input; using LootDumpProcessor.Process.Collector; using LootDumpProcessor.Process.Processor.DumpProcessor; @@ -42,8 +43,9 @@ public class QueuePipeline( private readonly List _mapNames = LootDumpProcessorContext.GetConfig().MapsToProcess; - public async Task DoProcess() + public async Task Execute() { + var stopwatch = Stopwatch.StartNew(); // Single collector instance to collect results var collector = CollectorFactory.GetInstance(); collector.Setup(); @@ -61,6 +63,8 @@ public class QueuePipeline( finally { _preProcessReader.Dispose(); + stopwatch.Stop(); + _logger.LogInformation("Dumps processed in {@Time}", stopwatch.Elapsed); } } @@ -206,7 +210,6 @@ public class QueuePipeline( /// /// Adds map name to file if they don't have it already. /// - /// Number of threads to use private async Task FixFilesFromDumps() { var inputPath = LootDumpProcessorContext.GetConfig().ReaderConfig.DumpFilesLocation; diff --git a/source/LootDumpProcessor/Program.cs b/source/LootDumpProcessor/Program.cs index 342b7b1..5c9a909 100644 --- a/source/LootDumpProcessor/Program.cs +++ b/source/LootDumpProcessor/Program.cs @@ -1,3 +1,4 @@ +using System.Diagnostics; using LootDumpProcessor.Process; using LootDumpProcessor.Process.Processor.DumpProcessor; using LootDumpProcessor.Process.Processor.FileProcessor; @@ -19,8 +20,22 @@ public static class Program public static async Task Main() { var services = new ServiceCollection(); + RegisterServices(services); + + await using var serviceProvider = services.BuildServiceProvider(); + // Setup Data storage + DataStorageFactory.GetInstance().Setup(); + + // startup the pipeline + var pipeline = serviceProvider.GetRequiredService(); + await pipeline.Execute(); + } + + private static void RegisterServices(ServiceCollection services) + { services.AddLogging(configure => configure.AddConsole()); + services.AddTransient(); services.AddTransient(); services.AddTransient(); @@ -36,16 +51,5 @@ public static class Program services.AddTransient(); services.AddTransient(); services.AddTransient(); - - await using var serviceProvider = services.BuildServiceProvider(); - - // Bootstrap the config before anything else, its required by the whole application to work - LootDumpProcessorContext.GetConfig(); - // Setup Data storage - DataStorageFactory.GetInstance().Setup(); - // startup the pipeline - var pipeline = serviceProvider.GetRequiredService(); - await pipeline.Execute(); - Thread.Sleep(10000); } } \ No newline at end of file