Benchmark

October 11, 2020 ยท View on GitHub

Environment


BenchmarkDotNet=v0.12.0, OS=Windows 10.0.19041
Intel Core i7-6700 CPU 3.40GHz (Skylake), 1 CPU, 8 logical and 4 physical cores
.NET Core SDK=3.1.402
  [Host] : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT  [AttachedDebugger]

Job=InProcess  Toolchain=InProcessEmitToolchain  

Write and Read

MethodMeanErrorStdDevRatioRatioSDGen 0Gen 1Gen 2Allocated
AsyncQueueEnqueueAndDequeueTest285.4 us5.54 us6.59 us2.220.0626.36720.4883-104.51 KB
ChannelReadAndWriteTest128.4 us2.55 us2.39 us1.000.004.1504--17.15 KB

AsyncQueue with multi-thread

MethodMeanErrorStdDevRatioRatioSDGen 0Gen 1Gen 2Allocated
DoubleBufferTaskReadAndWrite2,995.9 us55.31 us54.32 us22.890.8215.6250--70.68 KB
DoubleBufferTaskWithCapacityReadAndWrite3,005.9 us59.24 us74.92 us22.960.7219.5313--86.29 KB
AsyncQueueEnqueueAndDequeueTest141.6 us2.76 us3.68 us1.080.0325.14652.4414-103.53 KB
AsyncQueueEnqueueAndDequeueTestWithMultiThread284.4 us5.63 us7.52 us2.170.0726.36722.4414-104.55 KB
ChannelReadAndWriteTest130.9 us2.55 us3.41 us1.000.004.1504--17.15 KB
ChannelReadAndWriteTestWithMultiThread273.9 us4.98 us4.66 us2.100.073.9063--17.83 KB

DoubleBufferTask with multi-thread

MethodthreadCountMeanErrorStdDevRatioRatioSDGen 0Gen 1Gen 2Allocated
DoubleBufferTaskReadAndWrite?2,895.6 us39.62 us37.06 us22.650.4615.6250--70.68 KB
DoubleBufferTaskWithCapacityReadAndWrite?2,914.2 us50.76 us47.48 us22.800.4219.5313--86.29 KB
AsyncQueueEnqueueAndDequeueTest?275.4 us5.35 us5.73 us2.150.0526.36720.4883-104.48 KB
ChannelReadAndWriteTest?127.8 us2.06 us1.92 us1.000.004.1504--17.15 KB
DoubleBufferTaskWithMultiThreadReadAndWrite22,068.5 us40.93 us58.70 us??19.5313--87.7 KB
DoubleBufferTaskWithMultiThreadReadAndWrite51,193.8 us23.31 us39.59 us??21.4844--88.33 KB
DoubleBufferTaskWithMultiThreadReadAndWrite101,120.2 us22.31 us28.21 us??21.4844--89.38 KB

DoubleBufferTask with Batch task

MethodMeanErrorStdDevRatioGen 0Gen 1Gen 2Allocated
DoubleBufferTaskReadAndWriteTestWithMultiThread31.50 ms0.597 ms0.587 ms0.002---90.67 KB
ChannelReadAndWriteTestWithMultiThread15,791.17 ms43.934 ms41.095 ms1.000---645.11 KB

DoubleBuffer Add task

MethodMeanErrorStdDevRatioRatioSDGen 0Gen 1Gen 2Allocated
AddTaskToConcurrentBag539.1 us10.09 us9.91 us1.000.0054.687530.273427.3438256.45 KB
AddTaskToConcurrentBagWithMultiThread857.0 us16.84 us18.72 us1.590.0535.156317.57813.9063163.54 KB
AddTaskToDoubleBufferWithLock259.0 us2.98 us2.64 us0.480.0137.59779.2773-156.45 KB
AddTaskToDoubleBufferWithLockMultiThread599.9 us7.60 us6.74 us1.110.0238.08598.7891-159.63 KB
AddTaskToDoubleBufferWithReaderWriterLockSlim485.8 us9.63 us9.89 us0.900.0237.59779.2773-156.55 KB
AddTaskToDoubleBufferWithReaderWriterLockSlimMultiThread62,228.6 us2,209.10 us6,513.57 us118.3913.81---160.15 KB