diff --git a/sandbox/CliFrameworkBenchmark/Benchmark.cs b/sandbox/CliFrameworkBenchmark/Benchmark.cs
index 1e3e9b1c..c78de1c8 100644
--- a/sandbox/CliFrameworkBenchmark/Benchmark.cs
+++ b/sandbox/CliFrameworkBenchmark/Benchmark.cs
@@ -1,23 +1,15 @@
-// This benchmark project is based on CliFx.Benchmarks.
+// This benchmark project is based on CliFx.Benchmarks.
// https://github.com/Tyrrrz/CliFx/tree/master/CliFx.Benchmarks/
using BenchmarkDotNet.Attributes;
-using BenchmarkDotNet.Engines;
using BenchmarkDotNet.Order;
using CliFx;
using Cocona.Benchmark.External.Commands;
-using CommandLine;
using ConsoleAppFramework;
-using PowerArgs;
using Spectre.Console.Cli;
-using System.ComponentModel.DataAnnotations.Schema;
-using BenchmarkDotNet.Columns;
namespace Cocona.Benchmark.External;
-// use ColdStart strategy to measure startup time evaluation
-[SimpleJob(RunStrategy.ColdStart, launchCount: 1, warmupCount: 0, iterationCount: 1, invocationCount: 1)]
-[MemoryDiagnoser]
[Orderer(SummaryOrderPolicy.FastestToSlowest)]
public class Benchmark
{
diff --git a/sandbox/CliFrameworkBenchmark/CliFrameworkBenchmark.csproj b/sandbox/CliFrameworkBenchmark/CliFrameworkBenchmark.csproj
index 0af9c640..8cc59763 100644
--- a/sandbox/CliFrameworkBenchmark/CliFrameworkBenchmark.csproj
+++ b/sandbox/CliFrameworkBenchmark/CliFrameworkBenchmark.csproj
@@ -15,8 +15,8 @@
-
-
+
+
@@ -25,9 +25,9 @@
-
-
-
+
+
+
diff --git a/sandbox/CliFrameworkBenchmark/Commands/SystemCommandLineCommand.cs b/sandbox/CliFrameworkBenchmark/Commands/SystemCommandLineCommand.cs
index c37a45d3..a536ceb6 100644
--- a/sandbox/CliFrameworkBenchmark/Commands/SystemCommandLineCommand.cs
+++ b/sandbox/CliFrameworkBenchmark/Commands/SystemCommandLineCommand.cs
@@ -11,25 +11,37 @@ public static int Execute(string[] args)
{
var command = new RootCommand
{
- new Option(new[] {"--str", "-s"}),
- new Option(new[] {"--int", "-i"}),
- new Option(new[] {"--bool", "-b"}),
+ new Option("--str", ["-s"]),
+ new Option("--int", ["-i"]),
+ new Option("--bool", ["-b"]),
};
- command.Handler = CommandHandler.Create(ExecuteHandler);
- return command.Invoke(args);
+ command.SetAction(parseResult =>
+ {
+ var handler = CommandHandler.Create(ExecuteHandler);
+ return handler.InvokeAsync(parseResult);
+ });
+
+ ParseResult parseResult = command.Parse(args);
+ return parseResult.Invoke();
}
public static Task ExecuteAsync(string[] args)
{
var command = new RootCommand
{
- new Option(new[] {"--str", "-s"}),
- new Option(new[] {"--int", "-i"}),
- new Option(new[] {"--bool", "-b"}),
+ new Option("--str", ["-s"]),
+ new Option("--int", ["-i"]),
+ new Option("--bool", ["-b"]),
};
- command.Handler = CommandHandler.Create(ExecuteHandler);
- return command.InvokeAsync(args);
+ command.SetAction((parseResult, cancellationToken) =>
+ {
+ var handler = CommandHandler.Create(ExecuteHandler);
+ return handler.InvokeAsync(parseResult);
+ });
+
+ ParseResult parseResult = command.Parse(args);
+ return parseResult.InvokeAsync();
}
}
diff --git a/sandbox/CliFrameworkBenchmark/Program.cs b/sandbox/CliFrameworkBenchmark/Program.cs
index 5ee4add9..560f93c3 100644
--- a/sandbox/CliFrameworkBenchmark/Program.cs
+++ b/sandbox/CliFrameworkBenchmark/Program.cs
@@ -2,8 +2,12 @@
// https://github.com/Tyrrrz/CliFx/tree/master/CliFx.Benchmarks/
using BenchmarkDotNet.Configs;
+using BenchmarkDotNet.Diagnosers;
+using BenchmarkDotNet.Engines;
+using BenchmarkDotNet.Jobs;
using BenchmarkDotNet.Reports;
using BenchmarkDotNet.Running;
+using BenchmarkDotNet.Toolchains.CsProj;
using Perfolizer.Horology;
namespace Cocona.Benchmark.External;
@@ -12,6 +16,22 @@ class Program
{
static void Main(string[] args)
{
- BenchmarkRunner.Run(DefaultConfig.Instance.WithSummaryStyle(SummaryStyle.Default.WithTimeUnit(TimeUnit.Millisecond)), args);
+ var config = DefaultConfig.Instance
+ .WithSummaryStyle(SummaryStyle.Default
+ .WithTimeUnit(TimeUnit.Millisecond));
+
+ config.AddDiagnoser(MemoryDiagnoser.Default);
+ config.AddDiagnoser(new ThreadingDiagnoser(new ThreadingDiagnoserConfig(displayLockContentionWhenZero: false, displayCompletedWorkItemCountWhenZero: false)));
+
+ config.AddJob(Job.Default
+ .WithStrategy(RunStrategy.ColdStart)
+ .WithLaunchCount(1)
+ .WithWarmupCount(0)
+ .WithIterationCount(1)
+ .WithInvocationCount(1)
+ .WithToolchain(CsProjCoreToolchain.NetCoreApp80)
+ .DontEnforcePowerPlan());
+
+ BenchmarkRunner.Run(config, args);
}
}
diff --git a/sandbox/GeneratorSandbox/GeneratorSandbox.csproj b/sandbox/GeneratorSandbox/GeneratorSandbox.csproj
index ff2d53f9..8ba7778a 100644
--- a/sandbox/GeneratorSandbox/GeneratorSandbox.csproj
+++ b/sandbox/GeneratorSandbox/GeneratorSandbox.csproj
@@ -18,8 +18,8 @@
-
+ -->
+
diff --git a/src/ConsoleAppFramework/ConsoleAppFramework.csproj b/src/ConsoleAppFramework/ConsoleAppFramework.csproj
index 7e06a5b2..363e1b74 100644
--- a/src/ConsoleAppFramework/ConsoleAppFramework.csproj
+++ b/src/ConsoleAppFramework/ConsoleAppFramework.csproj
@@ -32,7 +32,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/tests/ConsoleAppFramework.GeneratorTests/ConsoleAppFramework.GeneratorTests.csproj b/tests/ConsoleAppFramework.GeneratorTests/ConsoleAppFramework.GeneratorTests.csproj
index 4ac531e4..32d7b249 100644
--- a/tests/ConsoleAppFramework.GeneratorTests/ConsoleAppFramework.GeneratorTests.csproj
+++ b/tests/ConsoleAppFramework.GeneratorTests/ConsoleAppFramework.GeneratorTests.csproj
@@ -12,10 +12,14 @@
-
-
-
-
+
+
+
+
+
+
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all