mirror of
https://github.com/adamhathcock/sharpcompress.git
synced 2026-09-24 16:05:27 +00:00
update profiler
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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(".");
|
||||
|
||||
Reference in New Issue
Block a user