diff --git a/SharpCompress.sln b/SharpCompress.sln index 3609183a..65ac7b42 100644 --- a/SharpCompress.sln +++ b/SharpCompress.sln @@ -30,6 +30,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Config", "Config", "{CDB425 EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpCompress.Performance", "tests\SharpCompress.Performance\SharpCompress.Performance.csproj", "{5BDE6DBC-9E5F-4E21-AB71-F138A3E72B17}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpCompress.AotSmoke", "tests\SharpCompress.AotSmoke\SharpCompress.AotSmoke.csproj", "{50C6DA22-2124-4E47-9FB7-96FEC5F59566}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -52,6 +54,10 @@ Global {5BDE6DBC-9E5F-4E21-AB71-F138A3E72B17}.Debug|Any CPU.Build.0 = Debug|Any CPU {5BDE6DBC-9E5F-4E21-AB71-F138A3E72B17}.Release|Any CPU.ActiveCfg = Release|Any CPU {5BDE6DBC-9E5F-4E21-AB71-F138A3E72B17}.Release|Any CPU.Build.0 = Release|Any CPU + {50C6DA22-2124-4E47-9FB7-96FEC5F59566}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {50C6DA22-2124-4E47-9FB7-96FEC5F59566}.Debug|Any CPU.Build.0 = Debug|Any CPU + {50C6DA22-2124-4E47-9FB7-96FEC5F59566}.Release|Any CPU.ActiveCfg = Release|Any CPU + {50C6DA22-2124-4E47-9FB7-96FEC5F59566}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -60,5 +66,6 @@ Global {FD19DDD8-72B2-4024-8665-0D1F7A2AA998} = {3C5BE746-03E5-4895-9988-0B57F162F86C} {F2B1A1EB-0FA6-40D0-8908-E13247C7226F} = {0F0901FF-E8D9-426A-B5A2-17C7F47C1529} {5BDE6DBC-9E5F-4E21-AB71-F138A3E72B17} = {0F0901FF-E8D9-426A-B5A2-17C7F47C1529} + {50C6DA22-2124-4E47-9FB7-96FEC5F59566} = {0F0901FF-E8D9-426A-B5A2-17C7F47C1529} EndGlobalSection EndGlobal diff --git a/tests/SharpCompress.Performance/Program.cs b/tests/SharpCompress.Performance/Program.cs index 35e257b8..856a0f9f 100644 --- a/tests/SharpCompress.Performance/Program.cs +++ b/tests/SharpCompress.Performance/Program.cs @@ -1,4 +1,5 @@ using System; +using System.Threading.Tasks; using BenchmarkDotNet.Configs; using BenchmarkDotNet.Jobs; using BenchmarkDotNet.Running; @@ -8,12 +9,12 @@ namespace SharpCompress.Performance; public class Program { - public static void Main(string[] args) + public static async Task Main(string[] args) { // Check if profiling mode is requested if (args.Length > 0 && args[0].Equals("--profile", StringComparison.OrdinalIgnoreCase)) { - RunWithProfiler(args); + await RunWithProfiler(args); return; } @@ -29,10 +30,10 @@ public class Program BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args, config); } - private static void RunWithProfiler(string[] args) + private static async Task RunWithProfiler(string[] args) { var profileType = "cpu"; // Default to CPU profiling - var outputPath = "./profiler-snapshots"; + var outputPath = "./profiler-snapshots";l // Parse arguments for (int i = 1; i < args.Length; i++) @@ -59,16 +60,11 @@ public class Program Console.WriteLine(); // Run a sample benchmark with profiling - RunSampleBenchmarkWithProfiler(profileType, outputPath); + await RunSampleBenchmarkWithProfiler(profileType, outputPath); } - private static void RunSampleBenchmarkWithProfiler(string profileType, string outputPath) + private static async Task RunSampleBenchmarkWithProfiler(string profileType, string outputPath) { - Console.WriteLine("Running sample benchmark with profiler..."); - Console.WriteLine("Note: JetBrains profiler requires the profiler tools to be installed."); - Console.WriteLine("Install from: https://www.jetbrains.com/profiler/"); - Console.WriteLine(); - try { IDisposable? profiler = null; @@ -85,13 +81,13 @@ public class Program using (profiler) { // Run a simple benchmark iteration - var zipBenchmark = new Benchmarks.ZipBenchmarks(); + var zipBenchmark = new Benchmarks.SevenZipBenchmarks(); zipBenchmark.Setup(); Console.WriteLine("Running benchmark iterations..."); - for (int i = 0; i < 10; i++) + for (int i = 0; i < 100; i++) { - zipBenchmark.ZipExtractArchiveApi(); + await zipBenchmark.SevenZipLzma2ExtractAsync_Reader(); if (i % 3 == 0) { Console.Write(".");