v3.0.0
alanmcgovern
released this
20 Jun 11:33
·
3 commits
to master
since this release
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