Skip to content

v3.0.0

Compare
Choose a tag to compare
@alanmcgovern alanmcgovern released this 20 Jun 11:33
· 3 commits to master since this release
0e9edb1

What's Changed

  • Fastpath by @alanmcgovern in #7 . When a ReusableTask continues from another ReusableTask we can pass the StateMachineCache object directly as the continuation to avoid creating an Action which points to the StateMachineCache. This optimisation works for ReusableTask -> ReusableTask as well as ReusableTask -> ReusableTask and ReusableTask -> ReusableTask.

Before

Method Concurrency Depth Iterations Mean Error StdDev Median Gen 0 Gen 1 Allocated
ReusableTask 1 500 1000 64.40 ms 4.009 ms 11.757 ms 61.14 ms - - 32 KB
ReusableTaskInt 1 500 1000 40.76 ms 3.133 ms 8.733 ms 37.86 ms - - 32 KB
ValueTaskInt 1 500 1000 65.22 ms 1.281 ms 2.140 ms 65.50 ms 6300.0000 100.0000 51,452 KB
ReusableTask 4 500 1000 91.19 ms 3.628 ms 10.698 ms 92.22 ms - - 32 KB
ReusableTaskInt 4 500 1000 57.23 ms 2.273 ms 6.630 ms 57.10 ms - - 127 KB
ValueTaskInt 4 500 1000 154.20 ms 3.067 ms 5.835 ms 154.74 ms 22250.0000 1000.0000 182,428 KB

After

Method Concurrency Depth Iterations Mean Error StdDev Median Gen 0 Gen 1 Allocated
ReusableTask 1 500 1000 41.91 ms 1.705 ms 4.667 ms 41.04 ms - - 32 KB
ReusableTaskInt 1 500 1000 34.96 ms 5.059 ms 14.917 ms 33.78 ms - - 32 KB
ValueTaskInt 1 500 1000 61.91 ms 3.413 ms 9.738 ms 56.92 ms 6000.0000 - 49,869 KB
ReusableTask 4 500 1000 55.24 ms 2.077 ms 6.124 ms 54.68 ms - - 32 KB
ReusableTaskInt 4 500 1000 51.82 ms 2.425 ms 7.111 ms 51.74 ms - - 127 KB
ValueTaskInt 4 500 1000 157.49 ms 3.112 ms 8.199 ms 157.46 ms 22500.0000 1000.0000 182,908 KB

Full Changelog: release-v2.0.3...release-v3.0.0