diff --git a/Benchmark/Craftimizer.Benchmark.csproj b/Benchmark/Craftimizer.Benchmark.csproj index 09dc5e0..5d72384 100644 --- a/Benchmark/Craftimizer.Benchmark.csproj +++ b/Benchmark/Craftimizer.Benchmark.csproj @@ -7,7 +7,7 @@ enable true x64 - Debug;Release + Debug;Release;Deterministic @@ -32,7 +32,7 @@ - + $(DefineConstants);IS_DETERMINISTIC diff --git a/Benchmark/Program.cs b/Benchmark/Program.cs index eb87a15..b8738f4 100644 --- a/Benchmark/Program.cs +++ b/Benchmark/Program.cs @@ -2,15 +2,37 @@ using Craftimizer.Simulator; using Craftimizer.Simulator.Actions; using Craftimizer.Solver; using ObjectLayoutInspector; +using System.Diagnostics; namespace Craftimizer.Benchmark; internal static class Program { - private static Task Main(string[] args) + private static void Main(string[] args) { +#if IS_DETERMINISTIC + var b = new Bench(); + + var initConfig = Bench.Configs.First(); + var initState = Bench.States.First(); + + var config = new MCTSConfig(initConfig.Data); + + var s = Stopwatch.StartNew(); + for (var i = 0; i < 100; ++i) + { + var solver = new MCTS(config, initState); + var progress = 0; + solver.Search(initConfig.Data.Iterations, ref progress, CancellationToken.None); + var solution = solver.Solution(); + Console.WriteLine($"{i+1}"); + } + s.Stop(); + Console.WriteLine($"{s.Elapsed.TotalMilliseconds:0.00}ms"); +#else RunBench(args); - return Task.CompletedTask; +#endif + // return RunOther(); } diff --git a/Craftimizer.sln b/Craftimizer.sln index 3c77500..b20584e 100644 --- a/Craftimizer.sln +++ b/Craftimizer.sln @@ -22,27 +22,36 @@ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 + Deterministic|x64 = Deterministic|x64 Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {13C812E9-0D42-4B95-8646-40EEBF30636F}.Debug|x64.ActiveCfg = Debug|x64 {13C812E9-0D42-4B95-8646-40EEBF30636F}.Debug|x64.Build.0 = Debug|x64 + {13C812E9-0D42-4B95-8646-40EEBF30636F}.Deterministic|x64.ActiveCfg = Release|x64 {13C812E9-0D42-4B95-8646-40EEBF30636F}.Release|x64.ActiveCfg = Release|x64 {13C812E9-0D42-4B95-8646-40EEBF30636F}.Release|x64.Build.0 = Release|x64 {057C4B64-4D99-4847-9BCF-966571CAE57C}.Debug|x64.ActiveCfg = Debug|x64 {057C4B64-4D99-4847-9BCF-966571CAE57C}.Debug|x64.Build.0 = Debug|x64 + {057C4B64-4D99-4847-9BCF-966571CAE57C}.Deterministic|x64.ActiveCfg = Deterministic|x64 + {057C4B64-4D99-4847-9BCF-966571CAE57C}.Deterministic|x64.Build.0 = Deterministic|x64 {057C4B64-4D99-4847-9BCF-966571CAE57C}.Release|x64.ActiveCfg = Release|x64 {057C4B64-4D99-4847-9BCF-966571CAE57C}.Release|x64.Build.0 = Release|x64 {172EE849-AC7E-4F2A-ACAB-EF9D065523B3}.Debug|x64.ActiveCfg = Debug|x64 {172EE849-AC7E-4F2A-ACAB-EF9D065523B3}.Debug|x64.Build.0 = Debug|x64 + {172EE849-AC7E-4F2A-ACAB-EF9D065523B3}.Deterministic|x64.ActiveCfg = Deterministic|x64 + {172EE849-AC7E-4F2A-ACAB-EF9D065523B3}.Deterministic|x64.Build.0 = Deterministic|x64 {172EE849-AC7E-4F2A-ACAB-EF9D065523B3}.Release|x64.ActiveCfg = Release|x64 {172EE849-AC7E-4F2A-ACAB-EF9D065523B3}.Release|x64.Build.0 = Release|x64 {2B0EA452-6DFC-48DB-9049-EA782E600C21}.Debug|x64.ActiveCfg = Debug|x64 {2B0EA452-6DFC-48DB-9049-EA782E600C21}.Debug|x64.Build.0 = Debug|x64 + {2B0EA452-6DFC-48DB-9049-EA782E600C21}.Deterministic|x64.ActiveCfg = Deterministic|x64 + {2B0EA452-6DFC-48DB-9049-EA782E600C21}.Deterministic|x64.Build.0 = Deterministic|x64 {2B0EA452-6DFC-48DB-9049-EA782E600C21}.Release|x64.ActiveCfg = Release|x64 {2B0EA452-6DFC-48DB-9049-EA782E600C21}.Release|x64.Build.0 = Release|x64 {C3AEA981-9DA8-405C-995B-86528493891B}.Debug|x64.ActiveCfg = Debug|x64 {C3AEA981-9DA8-405C-995B-86528493891B}.Debug|x64.Build.0 = Debug|x64 + {C3AEA981-9DA8-405C-995B-86528493891B}.Deterministic|x64.ActiveCfg = Deterministic|x64 {C3AEA981-9DA8-405C-995B-86528493891B}.Release|x64.ActiveCfg = Release|x64 {C3AEA981-9DA8-405C-995B-86528493891B}.Release|x64.Build.0 = Release|x64 EndGlobalSection diff --git a/Simulator/Craftimizer.Simulator.csproj b/Simulator/Craftimizer.Simulator.csproj index 05da899..aa8f2a8 100644 --- a/Simulator/Craftimizer.Simulator.csproj +++ b/Simulator/Craftimizer.Simulator.csproj @@ -3,10 +3,9 @@ net8.0 enable - 12.0 enable x64 - Debug;Release + Debug;Release;Deterministic @@ -16,7 +15,7 @@ - + $(DefineConstants);IS_DETERMINISTIC diff --git a/Solver/Craftimizer.Solver.csproj b/Solver/Craftimizer.Solver.csproj index d57c49a..cb09a3a 100644 --- a/Solver/Craftimizer.Solver.csproj +++ b/Solver/Craftimizer.Solver.csproj @@ -6,7 +6,7 @@ enable True x64 - Debug;Release + Debug;Release;Deterministic @@ -26,7 +26,7 @@ - + $(DefineConstants);IS_DETERMINISTIC diff --git a/Test/Craftimizer.Test.csproj b/Test/Craftimizer.Test.csproj index e9d833d..173b0a7 100644 --- a/Test/Craftimizer.Test.csproj +++ b/Test/Craftimizer.Test.csproj @@ -7,7 +7,7 @@ false true x64 - Debug;Release + Debug;Release;Deterministic @@ -25,7 +25,7 @@ - + $(DefineConstants);IS_DETERMINISTIC