diff --git a/.editorconfig b/.editorconfig index 96f80c7..8c46f77 100644 --- a/.editorconfig +++ b/.editorconfig @@ -69,3 +69,8 @@ indent_size = 2 [*.{yml,yaml}] indent_size = 2 indent_style = space + + +# C# analyzers +[*.{cs,vb}] +dotnet_diagnostic.CA2252.severity = none \ No newline at end of file diff --git a/Directory.Build.props b/Directory.Build.props index 470ef68..6f8cd6b 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -21,11 +21,19 @@ true + + + true + true + true + + True 8.0 - 9.0 - enable + 9.0 + enable + 10.0 @@ -35,4 +43,5 @@ false true + diff --git a/Directory.Packages.props b/Directory.Packages.props index 9f2401c..c5a75f2 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -16,7 +16,7 @@ - + diff --git a/IcedTasks.sln b/IcedTasks.sln index c7f66b4..996cb34 100644 --- a/IcedTasks.sln +++ b/IcedTasks.sln @@ -27,6 +27,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "examples", "examples", "{B3 EndProject Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "ILSpySamples", "examples\ILSpySamples\ILSpySamples.fsproj", "{130D8BDE-DAB6-4B12-925D-A9CFEC9F8B02}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ILSpySamples-CSharp", "examples\ILSpySamples-CSharp\ILSpySamples-CSharp.csproj", "{F079E375-8A7E-4AF4-B89F-E0365682EEA6}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -133,6 +135,18 @@ Global {130D8BDE-DAB6-4B12-925D-A9CFEC9F8B02}.Release|x64.Build.0 = Release|Any CPU {130D8BDE-DAB6-4B12-925D-A9CFEC9F8B02}.Release|x86.ActiveCfg = Release|Any CPU {130D8BDE-DAB6-4B12-925D-A9CFEC9F8B02}.Release|x86.Build.0 = Release|Any CPU + {F079E375-8A7E-4AF4-B89F-E0365682EEA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F079E375-8A7E-4AF4-B89F-E0365682EEA6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F079E375-8A7E-4AF4-B89F-E0365682EEA6}.Debug|x64.ActiveCfg = Debug|Any CPU + {F079E375-8A7E-4AF4-B89F-E0365682EEA6}.Debug|x64.Build.0 = Debug|Any CPU + {F079E375-8A7E-4AF4-B89F-E0365682EEA6}.Debug|x86.ActiveCfg = Debug|Any CPU + {F079E375-8A7E-4AF4-B89F-E0365682EEA6}.Debug|x86.Build.0 = Debug|Any CPU + {F079E375-8A7E-4AF4-B89F-E0365682EEA6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F079E375-8A7E-4AF4-B89F-E0365682EEA6}.Release|Any CPU.Build.0 = Release|Any CPU + {F079E375-8A7E-4AF4-B89F-E0365682EEA6}.Release|x64.ActiveCfg = Release|Any CPU + {F079E375-8A7E-4AF4-B89F-E0365682EEA6}.Release|x64.Build.0 = Release|Any CPU + {F079E375-8A7E-4AF4-B89F-E0365682EEA6}.Release|x86.ActiveCfg = Release|Any CPU + {F079E375-8A7E-4AF4-B89F-E0365682EEA6}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -145,5 +159,6 @@ Global {446B1378-DDC2-47CD-A6F2-C10F946B7E12} = {ACBEE43C-7A88-4FB1-9B06-DB064D22B29F} {04D5314E-2B8F-442B-9983-DCD12CC43448} = {ACBEE43C-7A88-4FB1-9B06-DB064D22B29F} {130D8BDE-DAB6-4B12-925D-A9CFEC9F8B02} = {B36A84DF-456D-A817-6EDD-3EC3E7F6E11F} + {F079E375-8A7E-4AF4-B89F-E0365682EEA6} = {B36A84DF-456D-A817-6EDD-3EC3E7F6E11F} EndGlobalSection EndGlobal diff --git a/benchmarks/CSharpTaskBenchmarks/CSharpTaskBenchmarks.csproj b/benchmarks/CSharpTaskBenchmarks/CSharpTaskBenchmarks.csproj index ad72d3e..878723f 100644 --- a/benchmarks/CSharpTaskBenchmarks/CSharpTaskBenchmarks.csproj +++ b/benchmarks/CSharpTaskBenchmarks/CSharpTaskBenchmarks.csproj @@ -1,8 +1,11 @@ - net8.0;net9.0 + net10.0;net9.0;net8.0 enable enable false + true + $(Features);runtime-async=on + $(NoWarn);SYSLIB5007 \ No newline at end of file diff --git a/benchmarks/FSharpBenchmarks/AsynchonousCompletionBenchmark.fs b/benchmarks/FSharpBenchmarks/AsynchonousCompletionBenchmark.fs index 1bf2e99..261640c 100644 --- a/benchmarks/FSharpBenchmarks/AsynchonousCompletionBenchmark.fs +++ b/benchmarks/FSharpBenchmarks/AsynchonousCompletionBenchmark.fs @@ -11,6 +11,7 @@ open System.Threading.Tasks open IcedTasks open System.IO +open System.Runtime.CompilerServices [] @@ -82,7 +83,25 @@ module AsyncHelpers = do! taskYield () return 100 } +#if NET10_0_OR_GREATER + [] + // [] + let fsharp_tenBindAsync_TaskBuilderRuntime () = + IcedTasks.Polyfill.TasksRuntime.TaskBuilder.task { + do! taskYield () + do! taskYield () + do! taskYield () + do! taskYield () + do! taskYield () + do! taskYield () + do! taskYield () + do! taskYield () + do! taskYield () + do! taskYield () + return 100 + } +#endif let fsharp_tenBindAsync_ValueTaskBuilder () = valueTask { @@ -233,6 +252,22 @@ type AsyncCompletionBenchmarks() = z + + [] + member x.FSharp_TenBindsAsync_TaskBuilderRuntime() : int = +#if NET10_0_OR_GREATER + let mutable z = 0 + + for i in 1 .. x.manyIterations do + z <- fsharp_tenBindAsync_TaskBuilderRuntime().GetAwaiter().GetResult() + + + z +#else + raise (NotSupportedException("Must be .NET 10 or greater")) +#endif + [] member x.FSharp_TenBindsAsync_ValueTaskBuilder() = diff --git a/benchmarks/FSharpBenchmarks/BenchmarkDotNet.Artifacts/results/IcedTasks.Benchmarks.AsyncCompletionBenchmarks-report-github.md b/benchmarks/FSharpBenchmarks/BenchmarkDotNet.Artifacts/results/IcedTasks.Benchmarks.AsyncCompletionBenchmarks-report-github.md index 0a8dcb1..f15a737 100644 --- a/benchmarks/FSharpBenchmarks/BenchmarkDotNet.Artifacts/results/IcedTasks.Benchmarks.AsyncCompletionBenchmarks-report-github.md +++ b/benchmarks/FSharpBenchmarks/BenchmarkDotNet.Artifacts/results/IcedTasks.Benchmarks.AsyncCompletionBenchmarks-report-github.md @@ -1,23 +1,54 @@ -``` ini +``` -BenchmarkDotNet=v0.13.2, OS=Windows 11 (10.0.22621.1848) -12th Gen Intel Core i9-12900F, 1 CPU, 24 logical and 16 physical cores -.NET SDK=7.0.203 - [Host] : .NET 7.0.8 (7.0.823.31807), X64 RyuJIT AVX2 DEBUG - DefaultJob : .NET 7.0.8 (7.0.823.31807), X64 RyuJIT AVX2 +BenchmarkDotNet v0.15.7, Windows 11 (10.0.26100.7171/24H2/2024Update/HudsonValley) +12th Gen Intel Core i9-12900F 2.40GHz, 1 CPU, 24 logical and 16 physical cores +.NET SDK 10.0.100 + [Host] : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v3 DEBUG + .NET 10.0 : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v3 + .NET 8.0 : .NET 8.0.21 (8.0.21, 8.0.2125.47513), X64 RyuJIT x86-64-v3 + .NET 9.0 : .NET 9.0.10 (9.0.10, 9.0.1025.47515), X64 RyuJIT x86-64-v3 ``` -| Method | Categories | Mean | Error | StdDev | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|--------------------------------------------------------------------- |----------------------------------------------------------------------- |----------:|----------:|----------:|------:|--------:|-------:|----------:|------------:| -| CSharp_TenBindsAsync_TaskBuilder | AsyncBinds,CSharp,TaskBuilder | 3.650 μs | 0.0702 μs | 0.0690 μs | 1.00 | 0.00 | - | 112 B | 1.00 | -| CSharp_TenBindsAsync_ValueTaskBuilder | AsyncBinds,CSharp,ValueTaskBuilder | 3.533 μs | 0.0527 μs | 0.0467 μs | 0.97 | 0.02 | 0.0039 | 120 B | 1.07 | -| FSharp_TenBindsAsync_AsyncBuilder | AsyncBinds,FSharp,AsyncBuilder | 70.017 μs | 1.3369 μs | 1.7383 μs | 19.18 | 0.61 | 0.4286 | 8224 B | 73.43 | -| FSharp_TenBindsAsync_CancellableTaskBuilder | AsyncBinds,FSharp,CancellableTaskBuilder | 3.607 μs | 0.0167 μs | 0.0130 μs | 0.99 | 0.02 | 0.0117 | 200 B | 1.79 | -| FSharp_TenBindsAsync_CancellableTaskBuilder_BindCancellableTask | AsyncBinds,FSharp,CancellableTaskBuilder,BindCancellableValueTask | 3.725 μs | 0.0737 μs | 0.1081 μs | 1.02 | 0.04 | 0.0117 | 200 B | 1.79 | -| FSharp_TenBindsAsync_CancellableValueTaskBuilder | AsyncBinds,FSharp,CancellableValueTaskBuilder | 3.549 μs | 0.0698 μs | 0.1378 μs | 0.97 | 0.04 | 0.0117 | 216 B | 1.93 | -| FSharp_TenBindsAsync_CancellableValueTaskBuilder_BindCancellableTask | AsyncBinds,FSharp,CancellableValueTaskBuilder,BindCancellableValueTask | 3.684 μs | 0.0689 μs | 0.0575 μs | 1.01 | 0.02 | 0.0117 | 216 B | 1.93 | -| FSharp_TenBindsAsync_PlyTaskBuilder | AsyncBinds,FSharp,PlyTaskBuilder | 4.137 μs | 0.0235 μs | 0.0220 μs | 1.13 | 0.03 | 0.0430 | 672 B | 6.00 | -| FSharp_TenBindsAsync_PlyValueTaskBuilder | AsyncBinds,FSharp,PlyValueTaskBuilder | 3.869 μs | 0.0393 μs | 0.0329 μs | 1.06 | 0.02 | 0.0391 | 672 B | 6.00 | -| FSharp_TenBindsAsync_TaskBuilder | AsyncBinds,FSharp,TaskBuilder | 3.574 μs | 0.0243 μs | 0.0227 μs | 0.98 | 0.02 | 0.0078 | 128 B | 1.14 | -| FSharp_TenBindsAsync_ValueTaskBuilder | AsyncBinds,FSharp,ValueTaskBuilder | 3.510 μs | 0.0669 μs | 0.0626 μs | 0.96 | 0.03 | 0.0078 | 136 B | 1.21 | +| Method | Job | Runtime | Categories | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | +|--------------------------------------------------------------------- |---------- |---------- |----------------------------------------------------------------------- |-------------:|-------------:|-------------:|-------------:|------:|--------:|-------:|----------:|------------:| +| CSharp_TenBindsAsync_TaskBuilder | .NET 10.0 | .NET 10.0 | AsyncBinds,CSharp,TaskBuilder | 1,751.75 ns | 29.396 ns | 26.059 ns | 1,753.48 ns | 1.00 | 0.02 | 0.0059 | 96 B | 1.00 | +| CSharp_TenBindsAsync_TaskBuilder | .NET 8.0 | .NET 8.0 | AsyncBinds,CSharp,TaskBuilder | 3,092.20 ns | 27.744 ns | 25.952 ns | 3,091.11 ns | 1.77 | 0.03 | 0.0039 | 96 B | 1.00 | +| CSharp_TenBindsAsync_TaskBuilder | .NET 9.0 | .NET 9.0 | AsyncBinds,CSharp,TaskBuilder | 1,834.57 ns | 25.990 ns | 21.703 ns | 1,830.35 ns | 1.05 | 0.02 | 0.0059 | 96 B | 1.00 | +| CSharp_TenBindsAsync_ValueTaskBuilder | .NET 10.0 | .NET 10.0 | AsyncBinds,CSharp,ValueTaskBuilder | 1,712.46 ns | 30.305 ns | 28.347 ns | 1,711.13 ns | 0.98 | 0.02 | 0.0059 | 104 B | 1.08 | +| CSharp_TenBindsAsync_ValueTaskBuilder | .NET 8.0 | .NET 8.0 | AsyncBinds,CSharp,ValueTaskBuilder | 3,240.03 ns | 40.618 ns | 37.994 ns | 3,253.56 ns | 1.85 | 0.03 | 0.0039 | 104 B | 1.08 | +| CSharp_TenBindsAsync_ValueTaskBuilder | .NET 9.0 | .NET 9.0 | AsyncBinds,CSharp,ValueTaskBuilder | 1,833.63 ns | 35.187 ns | 36.134 ns | 1,832.96 ns | 1.05 | 0.03 | - | 104 B | 1.08 | +| FSharp_TenBindsAsync_AsyncBuilder | .NET 10.0 | .NET 10.0 | AsyncBinds,FSharp,AsyncBuilder | 66,442.37 ns | 1,307.659 ns | 2,255.647 ns | 66,185.64 ns | 37.94 | 1.39 | 0.5000 | 8224 B | 85.67 | +| FSharp_TenBindsAsync_AsyncBuilder | .NET 8.0 | .NET 8.0 | AsyncBinds,FSharp,AsyncBuilder | 66,537.54 ns | 1,329.078 ns | 1,728.177 ns | 66,392.16 ns | 37.99 | 1.11 | 0.5000 | 8224 B | 85.67 | +| FSharp_TenBindsAsync_AsyncBuilder | .NET 9.0 | .NET 9.0 | AsyncBinds,FSharp,AsyncBuilder | 66,016.06 ns | 1,299.261 ns | 1,734.476 ns | 66,112.80 ns | 37.69 | 1.11 | 0.5000 | 8224 B | 85.67 | +| FSharp_TenBindsAsync_CancellableTaskBuilder | .NET 10.0 | .NET 10.0 | AsyncBinds,FSharp,CancellableTaskBuilder | 2,271.16 ns | 36.283 ns | 33.939 ns | 2,263.82 ns | 1.30 | 0.03 | 0.0508 | 808 B | 8.42 | +| FSharp_TenBindsAsync_CancellableTaskBuilder | .NET 8.0 | .NET 8.0 | AsyncBinds,FSharp,CancellableTaskBuilder | 3,801.54 ns | 40.073 ns | 35.523 ns | 3,805.37 ns | 2.17 | 0.04 | 0.0508 | 808 B | 8.42 | +| FSharp_TenBindsAsync_CancellableTaskBuilder | .NET 9.0 | .NET 9.0 | AsyncBinds,FSharp,CancellableTaskBuilder | 2,319.93 ns | 46.002 ns | 59.816 ns | 2,306.85 ns | 1.32 | 0.04 | 0.0508 | 808 B | 8.42 | +| FSharp_TenBindsAsync_CancellableTaskBuilder_BindCancellableTask | .NET 10.0 | .NET 10.0 | AsyncBinds,FSharp,CancellableTaskBuilder,BindCancellableValueTask | 2,277.13 ns | 31.623 ns | 29.581 ns | 2,285.44 ns | 1.30 | 0.02 | 0.0508 | 808 B | 8.42 | +| FSharp_TenBindsAsync_CancellableTaskBuilder_BindCancellableTask | .NET 8.0 | .NET 8.0 | AsyncBinds,FSharp,CancellableTaskBuilder,BindCancellableValueTask | 4,055.86 ns | 78.832 ns | 122.732 ns | 4,061.96 ns | 2.32 | 0.08 | 0.0469 | 808 B | 8.42 | +| FSharp_TenBindsAsync_CancellableTaskBuilder_BindCancellableTask | .NET 9.0 | .NET 9.0 | AsyncBinds,FSharp,CancellableTaskBuilder,BindCancellableValueTask | 2,294.96 ns | 38.003 ns | 37.324 ns | 2,289.55 ns | 1.31 | 0.03 | 0.0508 | 808 B | 8.42 | +| FSharp_TenBindsAsync_CancellableValueTaskBuilder | .NET 10.0 | .NET 10.0 | AsyncBinds,FSharp,CancellableValueTaskBuilder | 2,185.30 ns | 42.414 ns | 84.706 ns | 2,166.34 ns | 1.25 | 0.05 | 0.0508 | 824 B | 8.58 | +| FSharp_TenBindsAsync_CancellableValueTaskBuilder | .NET 8.0 | .NET 8.0 | AsyncBinds,FSharp,CancellableValueTaskBuilder | 3,892.08 ns | 76.254 ns | 109.361 ns | 3,938.84 ns | 2.22 | 0.07 | 0.0469 | 824 B | 8.58 | +| FSharp_TenBindsAsync_CancellableValueTaskBuilder | .NET 9.0 | .NET 9.0 | AsyncBinds,FSharp,CancellableValueTaskBuilder | 2,162.41 ns | 42.923 ns | 58.754 ns | 2,146.76 ns | 1.23 | 0.04 | 0.0508 | 824 B | 8.58 | +| FSharp_TenBindsAsync_CancellableValueTaskBuilder_BindCancellableTask | .NET 10.0 | .NET 10.0 | AsyncBinds,FSharp,CancellableValueTaskBuilder,BindCancellableValueTask | 2,140.32 ns | 37.943 ns | 37.265 ns | 2,147.44 ns | 1.22 | 0.03 | 0.0508 | 824 B | 8.58 | +| FSharp_TenBindsAsync_CancellableValueTaskBuilder_BindCancellableTask | .NET 8.0 | .NET 8.0 | AsyncBinds,FSharp,CancellableValueTaskBuilder,BindCancellableValueTask | 3,769.80 ns | 48.606 ns | 43.088 ns | 3,769.12 ns | 2.15 | 0.04 | 0.0469 | 824 B | 8.58 | +| FSharp_TenBindsAsync_CancellableValueTaskBuilder_BindCancellableTask | .NET 9.0 | .NET 9.0 | AsyncBinds,FSharp,CancellableValueTaskBuilder,BindCancellableValueTask | 2,187.57 ns | 43.675 ns | 92.126 ns | 2,166.04 ns | 1.25 | 0.06 | 0.0508 | 824 B | 8.58 | +| FSharp_TenBindsAsync_PlyTaskBuilder | .NET 10.0 | .NET 10.0 | AsyncBinds,FSharp,PlyTaskBuilder | 2,092.93 ns | 41.405 ns | 46.021 ns | 2,078.76 ns | 1.20 | 0.03 | 0.0391 | 656 B | 6.83 | +| FSharp_TenBindsAsync_PlyTaskBuilder | .NET 8.0 | .NET 8.0 | AsyncBinds,FSharp,PlyTaskBuilder | 3,872.86 ns | 76.358 ns | 101.936 ns | 3,852.86 ns | 2.21 | 0.07 | 0.0391 | 656 B | 6.83 | +| FSharp_TenBindsAsync_PlyTaskBuilder | .NET 9.0 | .NET 9.0 | AsyncBinds,FSharp,PlyTaskBuilder | 2,212.33 ns | 42.266 ns | 39.535 ns | 2,200.96 ns | 1.26 | 0.03 | 0.0391 | 656 B | 6.83 | +| FSharp_TenBindsAsync_PlyValueTaskBuilder | .NET 10.0 | .NET 10.0 | AsyncBinds,FSharp,PlyValueTaskBuilder | 2,103.78 ns | 31.121 ns | 29.111 ns | 2,108.12 ns | 1.20 | 0.02 | 0.0391 | 656 B | 6.83 | +| FSharp_TenBindsAsync_PlyValueTaskBuilder | .NET 8.0 | .NET 8.0 | AsyncBinds,FSharp,PlyValueTaskBuilder | 3,812.21 ns | 71.774 ns | 67.138 ns | 3,799.48 ns | 2.18 | 0.05 | 0.0391 | 656 B | 6.83 | +| FSharp_TenBindsAsync_PlyValueTaskBuilder | .NET 9.0 | .NET 9.0 | AsyncBinds,FSharp,PlyValueTaskBuilder | 2,259.37 ns | 49.481 ns | 145.119 ns | 2,208.15 ns | 1.29 | 0.08 | 0.0391 | 656 B | 6.83 | +| FSharp_TenBindsAsync_TaskBuilder | .NET 10.0 | .NET 10.0 | AsyncBinds,FSharp,TaskBuilder | 1,797.68 ns | 26.170 ns | 21.853 ns | 1,798.49 ns | 1.03 | 0.02 | 0.0059 | 112 B | 1.17 | +| FSharp_TenBindsAsync_TaskBuilder | .NET 8.0 | .NET 8.0 | AsyncBinds,FSharp,TaskBuilder | 3,386.05 ns | 66.148 ns | 61.875 ns | 3,383.73 ns | 1.93 | 0.04 | 0.0039 | 112 B | 1.17 | +| FSharp_TenBindsAsync_TaskBuilder | .NET 9.0 | .NET 9.0 | AsyncBinds,FSharp,TaskBuilder | 1,768.78 ns | 22.848 ns | 21.372 ns | 1,765.14 ns | 1.01 | 0.02 | 0.0059 | 112 B | 1.17 | +| FSharp_TenBindsAsync_TaskBuilderRuntime | .NET 10.0 | .NET 10.0 | AsyncBinds,FSharp,TaskBuilderRuntime | 42.35 ns | 0.378 ns | 0.353 ns | 42.31 ns | 0.02 | 0.00 | 0.0198 | 312 B | 3.25 | +| FSharp_TenBindsAsync_TaskBuilderRuntime | .NET 8.0 | .NET 8.0 | AsyncBinds,FSharp,TaskBuilderRuntime | NA | NA | NA | NA | ? | ? | NA | NA | ? | +| FSharp_TenBindsAsync_TaskBuilderRuntime | .NET 9.0 | .NET 9.0 | AsyncBinds,FSharp,TaskBuilderRuntime | NA | NA | NA | NA | ? | ? | NA | NA | ? | +| FSharp_TenBindsAsync_ValueTaskBuilder | .NET 10.0 | .NET 10.0 | AsyncBinds,FSharp,ValueTaskBuilder | 2,254.48 ns | 42.740 ns | 99.056 ns | 2,239.49 ns | 1.29 | 0.06 | 0.0469 | 744 B | 7.75 | +| FSharp_TenBindsAsync_ValueTaskBuilder | .NET 8.0 | .NET 8.0 | AsyncBinds,FSharp,ValueTaskBuilder | 3,840.81 ns | 40.324 ns | 37.719 ns | 3,838.74 ns | 2.19 | 0.04 | 0.0469 | 744 B | 7.75 | +| FSharp_TenBindsAsync_ValueTaskBuilder | .NET 9.0 | .NET 9.0 | AsyncBinds,FSharp,ValueTaskBuilder | 2,179.59 ns | 43.274 ns | 44.439 ns | 2,175.81 ns | 1.24 | 0.03 | 0.0469 | 744 B | 7.75 | + +Benchmarks with issues: + AsyncCompletionBenchmarks.FSharp_TenBindsAsync_TaskBuilderRuntime: .NET 8.0(Runtime=.NET 8.0, Toolchain=net8.0) + AsyncCompletionBenchmarks.FSharp_TenBindsAsync_TaskBuilderRuntime: .NET 9.0(Runtime=.NET 9.0, Toolchain=net9.0) diff --git a/benchmarks/FSharpBenchmarks/BenchmarkDotNet.Artifacts/results/IcedTasks.Benchmarks.AsyncCompletionBenchmarks-report.csv b/benchmarks/FSharpBenchmarks/BenchmarkDotNet.Artifacts/results/IcedTasks.Benchmarks.AsyncCompletionBenchmarks-report.csv index fa53fcc..95035c0 100644 --- a/benchmarks/FSharpBenchmarks/BenchmarkDotNet.Artifacts/results/IcedTasks.Benchmarks.AsyncCompletionBenchmarks-report.csv +++ b/benchmarks/FSharpBenchmarks/BenchmarkDotNet.Artifacts/results/IcedTasks.Benchmarks.AsyncCompletionBenchmarks-report.csv @@ -1,12 +1,37 @@ -Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,Categories,Mean,Error,StdDev,Ratio,RatioSD,Gen0,Allocated,Alloc Ratio -CSharp_TenBindsAsync_TaskBuilder,DefaultJob,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,CSharp,TaskBuilder",3.650 μs,0.0702 μs,0.0690 μs,1.00,0.00,-,112 B,1.00 -CSharp_TenBindsAsync_ValueTaskBuilder,DefaultJob,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,CSharp,ValueTaskBuilder",3.533 μs,0.0527 μs,0.0467 μs,0.97,0.02,0.0039,120 B,1.07 -FSharp_TenBindsAsync_AsyncBuilder,DefaultJob,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,AsyncBuilder",70.017 μs,1.3369 μs,1.7383 μs,19.18,0.61,0.4286,8224 B,73.43 -FSharp_TenBindsAsync_CancellableTaskBuilder,DefaultJob,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,CancellableTaskBuilder",3.607 μs,0.0167 μs,0.0130 μs,0.99,0.02,0.0117,200 B,1.79 -FSharp_TenBindsAsync_CancellableTaskBuilder_BindCancellableTask,DefaultJob,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,CancellableTaskBuilder,BindCancellableValueTask",3.725 μs,0.0737 μs,0.1081 μs,1.02,0.04,0.0117,200 B,1.79 -FSharp_TenBindsAsync_CancellableValueTaskBuilder,DefaultJob,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,CancellableValueTaskBuilder",3.549 μs,0.0698 μs,0.1378 μs,0.97,0.04,0.0117,216 B,1.93 -FSharp_TenBindsAsync_CancellableValueTaskBuilder_BindCancellableTask,DefaultJob,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,CancellableValueTaskBuilder,BindCancellableValueTask",3.684 μs,0.0689 μs,0.0575 μs,1.01,0.02,0.0117,216 B,1.93 -FSharp_TenBindsAsync_PlyTaskBuilder,DefaultJob,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,PlyTaskBuilder",4.137 μs,0.0235 μs,0.0220 μs,1.13,0.03,0.0430,672 B,6.00 -FSharp_TenBindsAsync_PlyValueTaskBuilder,DefaultJob,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,PlyValueTaskBuilder",3.869 μs,0.0393 μs,0.0329 μs,1.06,0.02,0.0391,672 B,6.00 -FSharp_TenBindsAsync_TaskBuilder,DefaultJob,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,TaskBuilder",3.574 μs,0.0243 μs,0.0227 μs,0.98,0.02,0.0078,128 B,1.14 -FSharp_TenBindsAsync_ValueTaskBuilder,DefaultJob,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,ValueTaskBuilder",3.510 μs,0.0669 μs,0.0626 μs,0.96,0.03,0.0078,136 B,1.21 +Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,LargeAddressAware,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,Categories,Mean,Error,StdDev,Median,Ratio,RatioSD,Gen0,Allocated,Alloc Ratio +CSharp_TenBindsAsync_TaskBuilder,.NET 10.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,CSharp,TaskBuilder","1,751.75 ns",29.396 ns,26.059 ns,"1,753.48 ns",1.00,0.02,0.0059,96 B,1.00 +CSharp_TenBindsAsync_TaskBuilder,.NET 8.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,CSharp,TaskBuilder","3,092.20 ns",27.744 ns,25.952 ns,"3,091.11 ns",1.77,0.03,0.0039,96 B,1.00 +CSharp_TenBindsAsync_TaskBuilder,.NET 9.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 9.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,CSharp,TaskBuilder","1,834.57 ns",25.990 ns,21.703 ns,"1,830.35 ns",1.05,0.02,0.0059,96 B,1.00 +CSharp_TenBindsAsync_ValueTaskBuilder,.NET 10.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,CSharp,ValueTaskBuilder","1,712.46 ns",30.305 ns,28.347 ns,"1,711.13 ns",0.98,0.02,0.0059,104 B,1.08 +CSharp_TenBindsAsync_ValueTaskBuilder,.NET 8.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,CSharp,ValueTaskBuilder","3,240.03 ns",40.618 ns,37.994 ns,"3,253.56 ns",1.85,0.03,0.0039,104 B,1.08 +CSharp_TenBindsAsync_ValueTaskBuilder,.NET 9.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 9.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,CSharp,ValueTaskBuilder","1,833.63 ns",35.187 ns,36.134 ns,"1,832.96 ns",1.05,0.03,0.0000,104 B,1.08 +FSharp_TenBindsAsync_AsyncBuilder,.NET 10.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,AsyncBuilder","66,442.37 ns","1,307.659 ns","2,255.647 ns","66,185.64 ns",37.94,1.39,0.5000,8224 B,85.67 +FSharp_TenBindsAsync_AsyncBuilder,.NET 8.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,AsyncBuilder","66,537.54 ns","1,329.078 ns","1,728.177 ns","66,392.16 ns",37.99,1.11,0.5000,8224 B,85.67 +FSharp_TenBindsAsync_AsyncBuilder,.NET 9.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 9.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,AsyncBuilder","66,016.06 ns","1,299.261 ns","1,734.476 ns","66,112.80 ns",37.69,1.11,0.5000,8224 B,85.67 +FSharp_TenBindsAsync_CancellableTaskBuilder,.NET 10.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,CancellableTaskBuilder","2,271.16 ns",36.283 ns,33.939 ns,"2,263.82 ns",1.30,0.03,0.0508,808 B,8.42 +FSharp_TenBindsAsync_CancellableTaskBuilder,.NET 8.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,CancellableTaskBuilder","3,801.54 ns",40.073 ns,35.523 ns,"3,805.37 ns",2.17,0.04,0.0508,808 B,8.42 +FSharp_TenBindsAsync_CancellableTaskBuilder,.NET 9.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 9.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,CancellableTaskBuilder","2,319.93 ns",46.002 ns,59.816 ns,"2,306.85 ns",1.32,0.04,0.0508,808 B,8.42 +FSharp_TenBindsAsync_CancellableTaskBuilder_BindCancellableTask,.NET 10.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,CancellableTaskBuilder,BindCancellableValueTask","2,277.13 ns",31.623 ns,29.581 ns,"2,285.44 ns",1.30,0.02,0.0508,808 B,8.42 +FSharp_TenBindsAsync_CancellableTaskBuilder_BindCancellableTask,.NET 8.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,CancellableTaskBuilder,BindCancellableValueTask","4,055.86 ns",78.832 ns,122.732 ns,"4,061.96 ns",2.32,0.08,0.0469,808 B,8.42 +FSharp_TenBindsAsync_CancellableTaskBuilder_BindCancellableTask,.NET 9.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 9.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,CancellableTaskBuilder,BindCancellableValueTask","2,294.96 ns",38.003 ns,37.324 ns,"2,289.55 ns",1.31,0.03,0.0508,808 B,8.42 +FSharp_TenBindsAsync_CancellableValueTaskBuilder,.NET 10.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,CancellableValueTaskBuilder","2,185.30 ns",42.414 ns,84.706 ns,"2,166.34 ns",1.25,0.05,0.0508,824 B,8.58 +FSharp_TenBindsAsync_CancellableValueTaskBuilder,.NET 8.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,CancellableValueTaskBuilder","3,892.08 ns",76.254 ns,109.361 ns,"3,938.84 ns",2.22,0.07,0.0469,824 B,8.58 +FSharp_TenBindsAsync_CancellableValueTaskBuilder,.NET 9.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 9.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,CancellableValueTaskBuilder","2,162.41 ns",42.923 ns,58.754 ns,"2,146.76 ns",1.23,0.04,0.0508,824 B,8.58 +FSharp_TenBindsAsync_CancellableValueTaskBuilder_BindCancellableTask,.NET 10.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,CancellableValueTaskBuilder,BindCancellableValueTask","2,140.32 ns",37.943 ns,37.265 ns,"2,147.44 ns",1.22,0.03,0.0508,824 B,8.58 +FSharp_TenBindsAsync_CancellableValueTaskBuilder_BindCancellableTask,.NET 8.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,CancellableValueTaskBuilder,BindCancellableValueTask","3,769.80 ns",48.606 ns,43.088 ns,"3,769.12 ns",2.15,0.04,0.0469,824 B,8.58 +FSharp_TenBindsAsync_CancellableValueTaskBuilder_BindCancellableTask,.NET 9.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 9.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,CancellableValueTaskBuilder,BindCancellableValueTask","2,187.57 ns",43.675 ns,92.126 ns,"2,166.04 ns",1.25,0.06,0.0508,824 B,8.58 +FSharp_TenBindsAsync_PlyTaskBuilder,.NET 10.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,PlyTaskBuilder","2,092.93 ns",41.405 ns,46.021 ns,"2,078.76 ns",1.20,0.03,0.0391,656 B,6.83 +FSharp_TenBindsAsync_PlyTaskBuilder,.NET 8.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,PlyTaskBuilder","3,872.86 ns",76.358 ns,101.936 ns,"3,852.86 ns",2.21,0.07,0.0391,656 B,6.83 +FSharp_TenBindsAsync_PlyTaskBuilder,.NET 9.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 9.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,PlyTaskBuilder","2,212.33 ns",42.266 ns,39.535 ns,"2,200.96 ns",1.26,0.03,0.0391,656 B,6.83 +FSharp_TenBindsAsync_PlyValueTaskBuilder,.NET 10.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,PlyValueTaskBuilder","2,103.78 ns",31.121 ns,29.111 ns,"2,108.12 ns",1.20,0.02,0.0391,656 B,6.83 +FSharp_TenBindsAsync_PlyValueTaskBuilder,.NET 8.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,PlyValueTaskBuilder","3,812.21 ns",71.774 ns,67.138 ns,"3,799.48 ns",2.18,0.05,0.0391,656 B,6.83 +FSharp_TenBindsAsync_PlyValueTaskBuilder,.NET 9.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 9.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,PlyValueTaskBuilder","2,259.37 ns",49.481 ns,145.119 ns,"2,208.15 ns",1.29,0.08,0.0391,656 B,6.83 +FSharp_TenBindsAsync_TaskBuilder,.NET 10.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,TaskBuilder","1,797.68 ns",26.170 ns,21.853 ns,"1,798.49 ns",1.03,0.02,0.0059,112 B,1.17 +FSharp_TenBindsAsync_TaskBuilder,.NET 8.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,TaskBuilder","3,386.05 ns",66.148 ns,61.875 ns,"3,383.73 ns",1.93,0.04,0.0039,112 B,1.17 +FSharp_TenBindsAsync_TaskBuilder,.NET 9.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 9.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,TaskBuilder","1,768.78 ns",22.848 ns,21.372 ns,"1,765.14 ns",1.01,0.02,0.0059,112 B,1.17 +FSharp_TenBindsAsync_TaskBuilderRuntime,.NET 10.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,TaskBuilderRuntime",42.35 ns,0.378 ns,0.353 ns,42.31 ns,0.02,0.00,0.0198,312 B,3.25 +FSharp_TenBindsAsync_TaskBuilderRuntime,.NET 8.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,TaskBuilderRuntime",NA,NA,NA,NA,?,?,NA,NA,? +FSharp_TenBindsAsync_TaskBuilderRuntime,.NET 9.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 9.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,TaskBuilderRuntime",NA,NA,NA,NA,?,?,NA,NA,? +FSharp_TenBindsAsync_ValueTaskBuilder,.NET 10.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,ValueTaskBuilder","2,254.48 ns",42.740 ns,99.056 ns,"2,239.49 ns",1.29,0.06,0.0469,744 B,7.75 +FSharp_TenBindsAsync_ValueTaskBuilder,.NET 8.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,ValueTaskBuilder","3,840.81 ns",40.324 ns,37.719 ns,"3,838.74 ns",2.19,0.04,0.0469,744 B,7.75 +FSharp_TenBindsAsync_ValueTaskBuilder,.NET 9.0,False,Default,Default,Default,Default,Default,Default,111111111111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 9.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,"AsyncBinds,FSharp,ValueTaskBuilder","2,179.59 ns",43.274 ns,44.439 ns,"2,175.81 ns",1.24,0.03,0.0469,744 B,7.75 diff --git a/benchmarks/FSharpBenchmarks/BenchmarkDotNet.Artifacts/results/IcedTasks.Benchmarks.AsyncCompletionBenchmarks-report.html b/benchmarks/FSharpBenchmarks/BenchmarkDotNet.Artifacts/results/IcedTasks.Benchmarks.AsyncCompletionBenchmarks-report.html index bb246cf..2fe4a5a 100644 --- a/benchmarks/FSharpBenchmarks/BenchmarkDotNet.Artifacts/results/IcedTasks.Benchmarks.AsyncCompletionBenchmarks-report.html +++ b/benchmarks/FSharpBenchmarks/BenchmarkDotNet.Artifacts/results/IcedTasks.Benchmarks.AsyncCompletionBenchmarks-report.html @@ -2,7 +2,7 @@ -IcedTasks.Benchmarks.AsyncCompletionBenchmarks-20230708-120148 +IcedTasks.Benchmarks.AsyncCompletionBenchmarks-20251119-002710