jberryman / unagi-chan

A haskell library implementing fast and scalable concurrent queues for x86, with a Chan-like API
BSD 3-Clause "New" or "Revised" License
127 stars 15 forks source link

Adjust performance warning to not trigger for AArch64 #43

Closed newhoggy closed 2 years ago

newhoggy commented 2 years ago

Benchmark on

macOS Montery
MackBook Pro (16-inch, 2021)
Chip Apple M1 Max
Memory 64 GB

Results:

Running 1 benchmarks...
Benchmark multi: RUNNING...
Running 1 benchmarks...
Benchmark single: RUNNING...
Running with capabilities: 10
benchmarking Operations on 100000 messages/unagi-chan Unagi/async 1 writers 1 readers
benchmarking Latency micro-benchmark/unagi-chan Unagi
time                 2.718 ms   (2.655 ms .. 2.772 ms)
                     0.993 R²   (0.989 R² .. 0.997 R²)
mean                 2.823 ms   (2.770 ms .. 2.903 ms)
std dev              221.0 μs   (191.7 μs .. 286.4 μs)
variance introduced by outliers: 53% (severely inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi/oversubscribing: async 100 writers 100 readers
time                 20.62 ns   (20.59 ns .. 20.67 ns)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 20.75 ns   (20.71 ns .. 20.81 ns)
std dev              162.6 ps   (135.2 ps .. 209.7 ps)

benchmarking Latency micro-benchmark/unagi-chan Unagi.Unboxed
time                 25.83 ms   (22.98 ms .. 29.06 ms)
                     0.958 R²   (0.910 R² .. 0.995 R²)
mean                 26.35 ms   (25.05 ms .. 28.43 ms)
std dev              3.602 ms   (2.591 ms .. 4.957 ms)
variance introduced by outliers: 59% (severely inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi/async Int writer, main thread read and sum
time                 17.49 ns   (16.90 ns .. 18.24 ns)
                     0.991 R²   (0.986 R² .. 0.996 R²)
mean                 17.53 ns   (17.15 ns .. 18.14 ns)
std dev              1.561 ns   (1.198 ns .. 1.996 ns)
variance introduced by outliers: 90% (severely inflated)

benchmarking Latency micro-benchmark/unagi-chan Unagi.Bounded 1024
time                 6.088 ms   (5.628 ms .. 6.546 ms)
                     0.959 R²   (0.917 R² .. 0.986 R²)
mean                 6.025 ms   (5.844 ms .. 6.347 ms)
std dev              681.6 μs   (490.5 μs .. 988.7 μs)
variance introduced by outliers: 64% (severely inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.Unboxed/async 1 writers 1 readers
time                 23.24 ns   (23.09 ns .. 23.42 ns)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 23.57 ns   (23.44 ns .. 23.72 ns)
std dev              471.4 ps   (406.8 ps .. 551.2 ps)
variance introduced by outliers: 30% (moderately inflated)

benchmarking Latency micro-benchmark/unagi-chan Unagi.Bounded 1024 with tryWriteChan
time                 1.746 ms   (1.714 ms .. 1.780 ms)
                     0.985 R²   (0.973 R² .. 0.993 R²)
mean                 1.838 ms   (1.767 ms .. 1.924 ms)
std dev              245.7 μs   (196.0 μs .. 295.6 μs)
variance introduced by outliers: 80% (severely inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.Unboxed/oversubscribing: async 100 writers 100 readers
time                 26.92 ns   (26.67 ns .. 27.38 ns)
                     0.999 R²   (0.998 R² .. 1.000 R²)
mean                 26.90 ns   (26.82 ns .. 27.06 ns)
std dev              390.4 ps   (196.7 ps .. 729.9 ps)
variance introduced by outliers: 18% (moderately inflated)

benchmarking Latency micro-benchmark/unagi-chan Unagi.NoBlocking
time                 22.75 ms   (20.95 ms .. 24.63 ms)
                     0.976 R²   (0.951 R² .. 0.994 R²)
mean                 23.02 ms   (22.08 ms .. 23.81 ms)
std dev              2.021 ms   (1.404 ms .. 3.067 ms)
variance introduced by outliers: 38% (moderately inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.Unboxed/async Int writer, main thread read and sum
time                 15.13 ns   (14.62 ns .. 15.60 ns)
                     0.995 R²   (0.993 R² .. 0.998 R²)
mean                 15.16 ns   (14.86 ns .. 15.51 ns)
std dev              1.074 ns   (880.9 ps .. 1.306 ns)
variance introduced by outliers: 85% (severely inflated)

benchmarking Latency micro-benchmark/unagi-chan Unagi.NoBlocking.Unboxed
time                 2.616 ms   (2.528 ms .. 2.713 ms)
                     0.992 R²   (0.987 R² .. 0.997 R²)
mean                 2.486 ms   (2.440 ms .. 2.568 ms)
std dev              175.6 μs   (130.3 μs .. 267.6 μs)
variance introduced by outliers: 49% (moderately inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.Bounded/async 1 writers 1 readers
time                 14.95 ns   (14.92 ns .. 14.99 ns)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 15.00 ns   (14.98 ns .. 15.07 ns)
std dev              128.3 ps   (83.10 ps .. 215.4 ps)

benchmarking Throughput with 1000000 messages/sequential write all then read all/unagi-chan Unagi
time                 2.726 ms   (2.664 ms .. 2.783 ms)
                     0.993 R²   (0.985 R² .. 0.997 R²)
mean                 2.841 ms   (2.789 ms .. 2.937 ms)
std dev              212.5 μs   (144.7 μs .. 348.7 μs)
variance introduced by outliers: 51% (severely inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.Bounded/oversubscribing: async 100 writers 100 readers
time                 28.89 ms   (28.82 ms .. 29.00 ms)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 28.89 ms   (28.84 ms .. 28.98 ms)
std dev              149.1 μs   (81.63 μs .. 246.0 μs)

benchmarking Throughput with 1000000 messages/sequential write all then read all/unagi-chan Unagi.Unboxed
time                 29.53 ms   (28.18 ms .. 31.02 ms)
                     0.982 R²   (0.955 R² .. 0.996 R²)
mean                 29.83 ms   (28.96 ms .. 31.59 ms)
std dev              2.719 ms   (1.866 ms .. 3.747 ms)
variance introduced by outliers: 34% (moderately inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.Bounded/async Int writer, main thread read and sum
time                 17.77 ms   (17.03 ms .. 18.55 ms)
                     0.993 R²   (0.988 R² .. 0.997 R²)
mean                 18.20 ms   (17.89 ms .. 18.58 ms)
std dev              843.2 μs   (602.7 μs .. 1.221 ms)
variance introduced by outliers: 16% (moderately inflated)

benchmarking Throughput with 1000000 messages/sequential write all then read all/unagi-chan Unagi.Bounded
time                 7.001 ms   (6.728 ms .. 7.402 ms)
                     0.969 R²   (0.931 R² .. 0.992 R²)
mean                 7.407 ms   (7.214 ms .. 7.816 ms)
std dev              831.0 μs   (466.1 μs .. 1.368 ms)
variance introduced by outliers: 64% (severely inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.NoBlocking/async 1 writers 1 readers
time                 41.81 ms   (41.69 ms .. 41.91 ms)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 40.82 ms   (39.66 ms .. 41.21 ms)
std dev              1.294 ms   (417.0 μs .. 2.390 ms)

benchmarking Throughput with 1000000 messages/sequential write all then read all/unagi-chan Unagi.NoBlocking
time                 1.116 ms   (1.086 ms .. 1.155 ms)
                     0.992 R²   (0.987 R² .. 0.997 R²)
mean                 1.093 ms   (1.075 ms .. 1.113 ms)
std dev              76.26 μs   (63.91 μs .. 95.94 μs)
variance introduced by outliers: 56% (severely inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.NoBlocking/oversubscribing: async 100 writers 100 readers
time                 21.13 ms   (20.72 ms .. 21.69 ms)
                     0.998 R²   (0.997 R² .. 1.000 R²)
mean                 20.88 ms   (20.69 ms .. 21.08 ms)
std dev              458.2 μs   (340.8 μs .. 655.7 μs)

benchmarking Throughput with 1000000 messages/sequential write all then read all/unagi-chan Unagi.NoBlocking Stream
time                 17.21 ms   (10.21 ms .. 22.51 ms)
                     0.709 R²   (0.394 R² .. 0.925 R²)
mean                 20.89 ms   (18.56 ms .. 23.50 ms)
std dev              5.979 ms   (4.640 ms .. 7.750 ms)
variance introduced by outliers: 90% (severely inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.NoBlocking/async Int writer, main thread read and sum
time                 28.88 ms   (24.44 ms .. 33.09 ms)
                     0.930 R²   (0.855 R² .. 0.981 R²)
mean                 27.34 ms   (25.72 ms .. 29.34 ms)
std dev              3.790 ms   (2.851 ms .. 4.915 ms)
variance introduced by outliers: 59% (severely inflated)

benchmarking Throughput with 1000000 messages/sequential write all then read all/unagi-chan Unagi.NoBlocking.Unboxed
time                 3.190 ms   (2.738 ms .. 3.810 ms)
                     0.724 R²   (0.564 R² .. 0.908 R²)
mean                 4.402 ms   (4.028 ms .. 5.354 ms)
std dev              1.740 ms   (1.150 ms .. 2.710 ms)
variance introduced by outliers: 98% (severely inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.NoBlocking Stream/async 1 writers 1 readers
time                 16.14 ms   (15.95 ms .. 16.47 ms)
                     0.998 R²   (0.997 R² .. 1.000 R²)
mean                 16.19 ms   (16.08 ms .. 16.35 ms)
std dev              328.8 μs   (239.4 μs .. 439.3 μs)

benchmarking Throughput with 1000000 messages/sequential write all then read all/unagi-chan Unagi.NoBlocking.Unboxed Stream
time                 3.313 ms   (3.205 ms .. 3.417 ms)
                     0.991 R²   (0.985 R² .. 0.995 R²)
mean                 3.105 ms   (3.050 ms .. 3.182 ms)
std dev              207.6 μs   (163.5 μs .. 259.1 μs)
variance introduced by outliers: 45% (moderately inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.NoBlocking Stream/oversubscribing: async 100 writers 100 readers
time                 16.98 ms   (15.80 ms .. 18.40 ms)
                     0.985 R²   (0.976 R² .. 1.000 R²)
mean                 16.24 ms   (16.04 ms .. 16.75 ms)
std dev              698.1 μs   (228.2 μs .. 1.290 ms)
variance introduced by outliers: 16% (moderately inflated)

benchmarking Throughput with 1000000 messages/repeated write some, read some/unagi-chan Unagi
time                 26.22 ms   (22.59 ms .. 29.72 ms)
                     0.903 R²   (0.783 R² .. 0.965 R²)
mean                 29.79 ms   (26.97 ms .. 34.59 ms)
std dev              7.554 ms   (4.941 ms .. 12.31 ms)
variance introduced by outliers: 82% (severely inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.NoBlocking Stream/async Int writer, main thread read and sum
time                 21.53 ms   (19.71 ms .. 23.17 ms)
                     0.972 R²   (0.947 R² .. 0.993 R²)
mean                 22.98 ms   (22.02 ms .. 24.38 ms)
std dev              2.553 ms   (1.610 ms .. 4.229 ms)
variance introduced by outliers: 48% (moderately inflated)

benchmarking Throughput with 1000000 messages/repeated write some, read some/unagi-chan Unagi.Unboxed
time                 6.895 ms   (6.250 ms .. 7.519 ms)
                     0.913 R²   (0.863 R² .. 0.950 R²)
mean                 4.727 ms   (4.219 ms .. 5.472 ms)
std dev              1.565 ms   (1.294 ms .. 1.872 ms)
variance introduced by outliers: 95% (severely inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.NoBlocking.Unboxed/async 1 writers 1 readers
time                 15.24 ms   (15.10 ms .. 15.39 ms)
                     0.999 R²   (0.998 R² .. 1.000 R²)
mean                 15.18 ms   (15.11 ms .. 15.28 ms)
std dev              212.3 μs   (160.0 μs .. 268.8 μs)

benchmarking Throughput with 1000000 messages/repeated write some, read some/unagi-chan Unagi.Bounded
time                 1.054 ms   (1.024 ms .. 1.089 ms)
                     0.994 R²   (0.991 R² .. 0.996 R²)
mean                 1.113 ms   (1.089 ms .. 1.162 ms)
std dev              115.9 μs   (84.89 μs .. 181.6 μs)
variance introduced by outliers: 74% (severely inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.NoBlocking.Unboxed/oversubscribing: async 100 writers 100 readers
time                 21.19 ms   (20.49 ms .. 21.95 ms)
                     0.997 R²   (0.994 R² .. 1.000 R²)
mean                 20.64 ms   (20.52 ms .. 21.00 ms)
std dev              438.4 μs   (217.9 μs .. 782.8 μs)

benchmarking Throughput with 1000000 messages/repeated write some, read some/unagi-chan Unagi.NoBlocking
time                 19.69 ms   (18.01 ms .. 21.31 ms)
                     0.961 R²   (0.934 R² .. 0.982 R²)
mean                 19.37 ms   (17.96 ms .. 20.31 ms)
std dev              2.523 ms   (1.920 ms .. 3.495 ms)
variance introduced by outliers: 62% (severely inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.NoBlocking.Unboxed/async Int writer, main thread read and sum
time                 13.92 ms   (13.62 ms .. 14.32 ms)
                     0.997 R²   (0.996 R² .. 0.999 R²)
mean                 14.39 ms   (14.19 ms .. 14.57 ms)
std dev              458.2 μs   (386.9 μs .. 545.1 μs)
variance introduced by outliers: 11% (moderately inflated)

benchmarking Throughput with 1000000 messages/repeated write some, read some/unagi-chan Unagi.NoBlocking Stream
time                 2.994 ms   (2.879 ms .. 3.099 ms)
                     0.975 R²   (0.941 R² .. 0.994 R²)
mean                 3.215 ms   (3.068 ms .. 3.578 ms)
std dev              766.5 μs   (209.0 μs .. 1.430 ms)
variance introduced by outliers: 91% (severely inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.NoBlocking.Unboxed Stream/async 1 writers 1 readers
time                 15.06 ms   (15.03 ms .. 15.09 ms)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 15.09 ms   (15.07 ms .. 15.11 ms)
std dev              49.37 μs   (36.47 μs .. 70.89 μs)

benchmarking Throughput with 1000000 messages/repeated write some, read some/unagi-chan Unagi.NoBlocking.Unboxed
time                 3.385 ms   (3.210 ms .. 3.576 ms)
                     0.978 R²   (0.968 R² .. 0.989 R²)
mean                 3.259 ms   (3.163 ms .. 3.362 ms)
std dev              289.1 μs   (236.4 μs .. 371.6 μs)
variance introduced by outliers: 59% (severely inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.NoBlocking.Unboxed Stream/oversubscribing: async 100 writers 100 readers
time                 15.34 ms   (14.12 ms .. 16.20 ms)
                     0.987 R²   (0.981 R² .. 1.000 R²)
mean                 14.67 ms   (14.48 ms .. 15.00 ms)
std dev              648.0 μs   (447.3 μs .. 898.3 μs)
variance introduced by outliers: 15% (moderately inflated)

benchmarking Throughput with 1000000 messages/repeated write some, read some/unagi-chan Unagi.NoBlocking.Unboxed Stream
time                 26.59 ms   (18.82 ms .. 34.55 ms)
                     0.818 R²   (0.654 R² .. 0.970 R²)
mean                 31.66 ms   (28.43 ms .. 36.14 ms)
std dev              7.605 ms   (5.160 ms .. 11.33 ms)
variance introduced by outliers: 81% (severely inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.NoBlocking.Unboxed Stream/async Int writer, main thread read and sum
time                 14.81 ms   (14.09 ms .. 15.69 ms)
                     0.987 R²   (0.978 R² .. 0.993 R²)
mean                 16.30 ms   (15.89 ms .. 16.87 ms)
std dev              1.222 ms   (846.9 μs .. 1.651 ms)
variance introduced by outliers: 36% (moderately inflated)

Benchmark single: FINISH
time                 3.907 ms   (3.772 ms .. 4.057 ms)
                     0.987 R²   (0.980 R² .. 0.993 R²)
mean                 3.622 ms   (3.519 ms .. 3.728 ms)
std dev              343.1 μs   (282.7 μs .. 444.4 μs)
variance introduced by outliers: 62% (severely inflated)

Benchmark multi: FINISH
newhoggy commented 2 years ago

This compares to benchmark on:

Macbook Pro (16-inch, 2019)
Processor 2.4 GHz 8-Core Intel Core i9
Memory 32 GB 2667 MHz DDR4

Results:

Running 1 benchmarks...
Benchmark single: RUNNING...
Running 1 benchmarks...
Benchmark multi: RUNNING...
benchmarking Latency micro-benchmark/unagi-chan Unagi
Running with capabilities: 16
benchmarking Operations on 100000 messages/unagi-chan Unagi/async 1 writers 1 readers
time                 44.48 ns   (43.62 ns .. 45.60 ns)
                     0.998 R²   (0.996 R² .. 0.999 R²)
mean                 44.47 ns   (44.08 ns .. 44.96 ns)
std dev              1.503 ns   (1.227 ns .. 2.035 ns)
variance introduced by outliers: 54% (severely inflated)

benchmarking Latency micro-benchmark/unagi-chan Unagi.Unboxed
time                 5.251 ms   (5.111 ms .. 5.403 ms)
                     0.996 R²   (0.994 R² .. 0.998 R²)
mean                 5.238 ms   (5.182 ms .. 5.297 ms)
std dev              176.3 μs   (126.6 μs .. 251.1 μs)
variance introduced by outliers: 14% (moderately inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi/oversubscribing: async 100 writers 100 readers
time                 58.56 ns   (55.11 ns .. 62.85 ns)
                     0.962 R²   (0.938 R² .. 0.985 R²)
mean                 64.55 ns   (58.39 ns .. 78.52 ns)
std dev              30.40 ns   (12.41 ns .. 54.30 ns)
variance introduced by outliers: 100% (severely inflated)

benchmarking Latency micro-benchmark/unagi-chan Unagi.Bounded 1024
time                 17.21 ms   (15.94 ms .. 18.28 ms)
                     0.976 R²   (0.952 R² .. 0.988 R²)
mean                 16.01 ms   (15.34 ms .. 16.69 ms)
std dev              1.692 ms   (1.407 ms .. 2.048 ms)
variance introduced by outliers: 52% (severely inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi/async Int writer, main thread read and sum
time                 52.91 ns   (52.30 ns .. 53.64 ns)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 53.27 ns   (52.75 ns .. 53.97 ns)
std dev              1.916 ns   (1.456 ns .. 2.580 ns)
variance introduced by outliers: 56% (severely inflated)

benchmarking Latency micro-benchmark/unagi-chan Unagi.Bounded 1024 with tryWriteChan
time                 7.038 ms   (6.888 ms .. 7.208 ms)
                     0.996 R²   (0.992 R² .. 0.998 R²)
mean                 7.026 ms   (6.951 ms .. 7.121 ms)
std dev              244.2 μs   (171.4 μs .. 322.8 μs)
variance introduced by outliers: 14% (moderately inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.Unboxed/async 1 writers 1 readers
time                 3.986 ms   (3.900 ms .. 4.097 ms)
                     0.996 R²   (0.993 R² .. 0.999 R²)
mean                 3.937 ms   (3.896 ms .. 3.997 ms)
std dev              151.8 μs   (117.4 μs .. 195.9 μs)
variance introduced by outliers: 21% (moderately inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.Unboxed/oversubscribing: async 100 writers 100 readers
time                 54.44 ns   (53.66 ns .. 55.45 ns)
                     0.998 R²   (0.997 R² .. 0.999 R²)
mean                 55.02 ns   (54.32 ns .. 55.79 ns)
std dev              2.428 ns   (1.929 ns .. 3.030 ns)
variance introduced by outliers: 66% (severely inflated)

benchmarking Latency micro-benchmark/unagi-chan Unagi.NoBlocking
time                 47.40 ns   (45.68 ns .. 50.00 ns)
                     0.989 R²   (0.977 R² .. 0.998 R²)
mean                 48.01 ns   (47.15 ns .. 49.64 ns)
std dev              3.676 ns   (2.444 ns .. 6.225 ns)
variance introduced by outliers: 86% (severely inflated)

benchmarking Latency micro-benchmark/unagi-chan Unagi.NoBlocking.Unboxed
time                 13.34 ms   (12.54 ms .. 14.31 ms)
                     0.968 R²   (0.945 R² .. 0.986 R²)
mean                 12.82 ms   (12.31 ms .. 13.49 ms)
std dev              1.640 ms   (1.242 ms .. 2.194 ms)
variance introduced by outliers: 65% (severely inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.Unboxed/async Int writer, main thread read and sum
time                 30.77 ns   (30.41 ns .. 31.15 ns)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 31.13 ns   (30.77 ns .. 31.63 ns)
std dev              1.440 ns   (1.196 ns .. 1.824 ns)
variance introduced by outliers: 69% (severely inflated)

benchmarking Throughput with 1000000 messages/sequential write all then read all/unagi-chan Unagi
time                 3.990 ms   (3.932 ms .. 4.039 ms)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 4.002 ms   (3.977 ms .. 4.040 ms)
std dev              93.38 μs   (73.16 μs .. 124.4 μs)

benchmarking Operations on 100000 messages/unagi-chan Unagi.Bounded/async 1 writers 1 readers
time                 5.549 ms   (5.455 ms .. 5.694 ms)
                     0.997 R²   (0.995 R² .. 0.999 R²)
mean                 5.557 ms   (5.512 ms .. 5.600 ms)
std dev              136.4 μs   (93.99 μs .. 186.1 μs)

benchmarking Operations on 100000 messages/unagi-chan Unagi.Bounded/oversubscribing: async 100 writers 100 readers
time                 52.18 ms   (50.80 ms .. 54.20 ms)
                     0.997 R²   (0.992 R² .. 1.000 R²)
mean                 53.53 ms   (52.60 ms .. 54.90 ms)
std dev              2.107 ms   (1.449 ms .. 3.166 ms)

benchmarking Throughput with 1000000 messages/sequential write all then read all/unagi-chan Unagi.Unboxed
time                 16.50 ms   (15.05 ms .. 17.83 ms)
                     0.959 R²   (0.909 R² .. 0.989 R²)
mean                 16.75 ms   (16.06 ms .. 17.47 ms)
std dev              1.660 ms   (1.380 ms .. 2.158 ms)
variance introduced by outliers: 46% (moderately inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.Bounded/async Int writer, main thread read and sum
time                 47.94 ms   (44.39 ms .. 51.20 ms)
                     0.985 R²   (0.967 R² .. 0.994 R²)
mean                 51.47 ms   (49.42 ms .. 54.47 ms)
std dev              4.913 ms   (3.247 ms .. 6.784 ms)
variance introduced by outliers: 37% (moderately inflated)

benchmarking Throughput with 1000000 messages/sequential write all then read all/unagi-chan Unagi.Bounded
time                 9.454 ms   (9.328 ms .. 9.582 ms)
                     0.998 R²   (0.996 R² .. 0.999 R²)
mean                 9.391 ms   (9.309 ms .. 9.497 ms)
std dev              247.9 μs   (210.4 μs .. 313.2 μs)

benchmarking Operations on 100000 messages/unagi-chan Unagi.NoBlocking/async 1 writers 1 readers
time                 86.09 ms   (82.95 ms .. 89.95 ms)
                     0.998 R²   (0.995 R² .. 1.000 R²)
mean                 86.23 ms   (83.66 ms .. 87.41 ms)
std dev              2.889 ms   (1.347 ms .. 4.549 ms)

benchmarking Throughput with 1000000 messages/sequential write all then read all/unagi-chan Unagi.NoBlocking
time                 1.925 ms   (1.904 ms .. 1.964 ms)
                     0.998 R²   (0.996 R² .. 0.999 R²)
mean                 1.941 ms   (1.923 ms .. 1.969 ms)
std dev              61.74 μs   (46.21 μs .. 80.88 μs)
variance introduced by outliers: 18% (moderately inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.NoBlocking/oversubscribing: async 100 writers 100 readers
time                 42.22 ms   (34.75 ms .. 54.13 ms)
                     0.890 R²   (0.834 R² .. 1.000 R²)
mean                 36.33 ms   (34.91 ms .. 41.54 ms)
std dev              5.013 ms   (831.7 μs .. 9.486 ms)
variance introduced by outliers: 52% (severely inflated)

benchmarking Throughput with 1000000 messages/sequential write all then read all/unagi-chan Unagi.NoBlocking Stream
time                 20.55 ms   (17.61 ms .. 23.45 ms)
                     0.899 R²   (0.807 R² .. 0.962 R²)
mean                 18.81 ms   (17.35 ms .. 20.28 ms)
std dev              3.571 ms   (2.949 ms .. 4.297 ms)
variance introduced by outliers: 76% (severely inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.NoBlocking/async Int writer, main thread read and sum
time                 48.93 ms   (30.06 ms .. 73.88 ms)
                     0.744 R²   (0.441 R² .. 0.991 R²)
mean                 63.98 ms   (54.74 ms .. 68.64 ms)
std dev              11.33 ms   (5.270 ms .. 15.70 ms)
variance introduced by outliers: 65% (severely inflated)

benchmarking Throughput with 1000000 messages/sequential write all then read all/unagi-chan Unagi.NoBlocking.Unboxed
time                 3.559 ms   (3.517 ms .. 3.602 ms)
                     0.999 R²   (0.998 R² .. 0.999 R²)
mean                 3.712 ms   (3.662 ms .. 3.784 ms)
std dev              181.8 μs   (140.5 μs .. 228.6 μs)
variance introduced by outliers: 29% (moderately inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.NoBlocking Stream/async 1 writers 1 readers
time                 32.57 ms   (31.92 ms .. 33.25 ms)
                     0.999 R²   (0.997 R² .. 1.000 R²)
mean                 32.34 ms   (32.08 ms .. 32.74 ms)
std dev              709.2 μs   (467.7 μs .. 1.056 ms)

benchmarking Throughput with 1000000 messages/sequential write all then read all/unagi-chan Unagi.NoBlocking.Unboxed Stream
time                 3.058 ms   (3.010 ms .. 3.127 ms)
                     0.998 R²   (0.997 R² .. 1.000 R²)
mean                 3.018 ms   (3.001 ms .. 3.044 ms)
std dev              69.72 μs   (47.29 μs .. 97.81 μs)

benchmarking Operations on 100000 messages/unagi-chan Unagi.NoBlocking Stream/oversubscribing: async 100 writers 100 readers
time                 41.77 ms   (30.22 ms .. 51.38 ms)
                     0.883 R²   (0.836 R² .. 0.996 R²)
mean                 32.56 ms   (30.52 ms .. 36.43 ms)
std dev              5.917 ms   (1.305 ms .. 8.683 ms)
variance introduced by outliers: 67% (severely inflated)

benchmarking Throughput with 1000000 messages/repeated write some, read some/unagi-chan Unagi
time                 20.95 ms   (18.57 ms .. 23.15 ms)
                     0.944 R²   (0.876 R² .. 0.982 R²)
mean                 19.38 ms   (18.10 ms .. 20.49 ms)
std dev              2.790 ms   (2.142 ms .. 3.757 ms)
variance introduced by outliers: 67% (severely inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.NoBlocking Stream/async Int writer, main thread read and sum
time                 46.60 ms   (22.41 ms .. 86.93 ms)
                     0.680 R²   (0.270 R² .. 0.979 R²)
mean                 76.52 ms   (65.43 ms .. 85.46 ms)
std dev              17.58 ms   (12.24 ms .. 21.54 ms)
variance introduced by outliers: 71% (severely inflated)

benchmarking Throughput with 1000000 messages/repeated write some, read some/unagi-chan Unagi.Unboxed
time                 3.701 ms   (3.649 ms .. 3.769 ms)
                     0.997 R²   (0.995 R² .. 0.998 R²)
mean                 4.007 ms   (3.950 ms .. 4.066 ms)
std dev              193.0 μs   (168.5 μs .. 236.7 μs)
variance introduced by outliers: 28% (moderately inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.NoBlocking.Unboxed/async 1 writers 1 readers
time                 36.59 ms   (35.77 ms .. 37.78 ms)
                     0.998 R²   (0.995 R² .. 1.000 R²)
mean                 38.23 ms   (37.72 ms .. 38.85 ms)
std dev              1.102 ms   (821.5 μs .. 1.570 ms)

benchmarking Throughput with 1000000 messages/repeated write some, read some/unagi-chan Unagi.Bounded
time                 1.919 ms   (1.904 ms .. 1.954 ms)
                     0.997 R²   (0.989 R² .. 1.000 R²)
mean                 1.925 ms   (1.913 ms .. 1.964 ms)
std dev              70.47 μs   (31.05 μs .. 125.1 μs)
variance introduced by outliers: 23% (moderately inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.NoBlocking.Unboxed/oversubscribing: async 100 writers 100 readers
time                 70.40 ms   (45.35 ms .. 97.89 ms)
                     0.832 R²   (0.756 R² .. 1.000 R²)
mean                 51.48 ms   (47.21 ms .. 63.77 ms)
std dev              12.09 ms   (2.924 ms .. 19.50 ms)
variance introduced by outliers: 74% (severely inflated)

benchmarking Throughput with 1000000 messages/repeated write some, read some/unagi-chan Unagi.NoBlocking
time                 22.24 ms   (18.11 ms .. 27.10 ms)
                     0.865 R²   (0.783 R² .. 0.944 R²)
mean                 20.89 ms   (18.94 ms .. 23.27 ms)
std dev              4.293 ms   (3.216 ms .. 5.783 ms)
variance introduced by outliers: 80% (severely inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.NoBlocking.Unboxed/async Int writer, main thread read and sum
time                 29.38 ms   (21.34 ms .. 41.26 ms)
                     0.766 R²   (0.549 R² .. 0.920 R²)
mean                 40.79 ms   (36.67 ms .. 44.63 ms)
std dev              7.981 ms   (6.185 ms .. 10.06 ms)
variance introduced by outliers: 72% (severely inflated)

benchmarking Throughput with 1000000 messages/repeated write some, read some/unagi-chan Unagi.NoBlocking Stream
time                 3.570 ms   (3.513 ms .. 3.625 ms)
                     0.998 R²   (0.997 R² .. 0.999 R²)
mean                 3.920 ms   (3.845 ms .. 3.991 ms)
std dev              219.4 μs   (197.8 μs .. 250.8 μs)
variance introduced by outliers: 35% (moderately inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.NoBlocking.Unboxed Stream/async 1 writers 1 readers
time                 26.77 ms   (26.27 ms .. 27.17 ms)
                     0.998 R²   (0.996 R² .. 1.000 R²)
mean                 27.11 ms   (26.87 ms .. 27.37 ms)
std dev              543.8 μs   (373.1 μs .. 775.1 μs)

benchmarking Throughput with 1000000 messages/repeated write some, read some/unagi-chan Unagi.NoBlocking.Unboxed
time                 3.291 ms   (3.236 ms .. 3.381 ms)
                     0.994 R²   (0.986 R² .. 0.999 R²)
mean                 3.150 ms   (3.113 ms .. 3.238 ms)
std dev              177.0 μs   (112.9 μs .. 261.7 μs)
variance introduced by outliers: 37% (moderately inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.NoBlocking.Unboxed Stream/oversubscribing: async 100 writers 100 readers
time                 43.74 ms   (31.42 ms .. 54.53 ms)
                     0.872 R²   (0.817 R² .. 0.999 R²)
mean                 34.14 ms   (31.80 ms .. 38.60 ms)
std dev              6.331 ms   (978.4 μs .. 9.668 ms)
variance introduced by outliers: 72% (severely inflated)

benchmarking Throughput with 1000000 messages/repeated write some, read some/unagi-chan Unagi.NoBlocking.Unboxed Stream
time                 22.25 ms   (20.32 ms .. 24.33 ms)
                     0.957 R²   (0.919 R² .. 0.982 R²)
mean                 20.98 ms   (19.58 ms .. 22.26 ms)
std dev              3.367 ms   (2.556 ms .. 4.795 ms)
variance introduced by outliers: 70% (severely inflated)

benchmarking Operations on 100000 messages/unagi-chan Unagi.NoBlocking.Unboxed Stream/async Int writer, main thread read and sum
time                 29.00 ms   (19.15 ms .. 40.94 ms)
                     0.764 R²   (0.536 R² .. 0.916 R²)
mean                 43.45 ms   (38.77 ms .. 46.74 ms)
std dev              8.365 ms   (6.088 ms .. 10.10 ms)
variance introduced by outliers: 72% (severely inflated)

Benchmark single: FINISH
time                 3.714 ms   (3.650 ms .. 3.806 ms)
                     0.996 R²   (0.994 R² .. 0.998 R²)
mean                 3.956 ms   (3.918 ms .. 3.998 ms)
std dev              139.0 μs   (111.3 μs .. 161.7 μs)
variance introduced by outliers: 17% (moderately inflated)

Benchmark multi: FINISH
jberryman commented 2 years ago

Thanks! This is released now

newhoggy commented 2 years ago

Thanks so much!