Closed mgravell closed 4 years ago
RecyclableMemoryStream
does a really good job for large sizes, but is much slower for small sizes, with the cut-off being somewhere around 10k bytes
next step: sequence based
Method | Runtime | Bytes | Mean | Error | StdDev | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|---|---|
MemoryStream | .NET 4.7.2 | 0 | 31.535 ns | 0.5435 ns | 0.5084 ns | 1.00 | 0.00 | 0.0165 | - | - | 104 B |
ArrayPoolStream | .NET 4.7.2 | 0 | 26.000 ns | 0.5136 ns | 0.4010 ns | 0.82 | 0.02 | 0.0114 | - | - | 72 B |
RecyclableMemoryStream | .NET 4.7.2 | 0 | 1,358.886 ns | 26.9160 ns | 51.8580 ns | 43.74 | 2.15 | 0.0534 | 0.0191 | 0.0019 | 699 B |
MemoryStream | .NET Core 3.1 | 0 | 10.172 ns | 0.1609 ns | 0.1505 ns | 1.00 | 0.00 | 0.0086 | - | - | 72 B |
ArrayPoolStream | .NET Core 3.1 | 0 | 9.504 ns | 0.1006 ns | 0.0892 ns | 0.93 | 0.02 | 0.0076 | - | - | 64 B |
RecyclableMemoryStream | .NET Core 3.1 | 0 | 1,266.543 ns | 25.2642 ns | 58.5537 ns | 126.09 | 7.24 | 0.0381 | 0.0172 | 0.0019 | 1662 B |
MemoryStream | .NET 4.7.2 | 100 | 66.363 ns | 0.7353 ns | 0.6878 ns | 1.00 | 0.00 | 0.0612 | - | - | 385 B |
ArrayPoolStream | .NET 4.7.2 | 100 | 88.631 ns | 1.7015 ns | 1.6711 ns | 1.34 | 0.03 | 0.0356 | - | - | 225 B |
RecyclableMemoryStream | .NET 4.7.2 | 100 | 1,428.634 ns | 28.5385 ns | 79.0801 ns | 22.04 | 1.47 | 0.0534 | 0.0191 | 0.0019 | 1530 B |
MemoryStream | .NET Core 3.1 | 100 | 43.916 ns | 0.8310 ns | 1.0510 ns | 1.00 | 0.00 | 0.0421 | - | - | 352 B |
ArrayPoolStream | .NET Core 3.1 | 100 | 43.723 ns | 0.8543 ns | 0.9141 ns | 1.00 | 0.03 | 0.0258 | - | - | 216 B |
RecyclableMemoryStream | .NET Core 3.1 | 100 | 1,288.418 ns | 25.7713 ns | 63.2174 ns | 29.76 | 1.74 | 0.0381 | 0.0191 | 0.0019 | 313 B |
MemoryStream | .NET 4.7.2 | 1000 | 114.913 ns | 0.6202 ns | 0.5801 ns | 1.00 | 0.00 | 0.1796 | 0.0006 | - | 1131 B |
ArrayPoolStream | .NET 4.7.2 | 1000 | 147.929 ns | 0.7200 ns | 0.6383 ns | 1.29 | 0.01 | 0.1783 | 0.0005 | - | 1123 B |
RecyclableMemoryStream | .NET 4.7.2 | 1000 | 1,503.525 ns | 29.5134 ns | 53.9669 ns | 13.07 | 0.50 | 0.0553 | 0.0191 | 0.0019 | 1118 B |
MemoryStream | .NET Core 3.1 | 1000 | 91.894 ns | 1.4502 ns | 1.3566 ns | 1.00 | 0.00 | 0.1310 | 0.0005 | - | 1096 B |
ArrayPoolStream | .NET Core 3.1 | 1000 | 132.832 ns | 2.6670 ns | 6.0741 ns | 1.47 | 0.10 | 0.1378 | - | - | 1112 B |
RecyclableMemoryStream | .NET Core 3.1 | 1000 | 1,156.241 ns | 38.3437 ns | 113.0573 ns | 13.65 | 1.24 | 0.0343 | 0.0153 | - | 306 B |
MemoryStream | .NET 4.7.2 | 10000 | 2,158.464 ns | 28.9042 ns | 27.0370 ns | 1.00 | 0.00 | 4.9210 | 0.3510 | - | 31002 B |
ArrayPoolStream | .NET 4.7.2 | 10000 | 1,551.564 ns | 21.1653 ns | 19.7980 ns | 0.72 | 0.01 | 2.6226 | 0.1373 | - | 16518 B |
RecyclableMemoryStream | .NET 4.7.2 | 10000 | 1,887.913 ns | 40.4311 ns | 117.9394 ns | 0.85 | 0.05 | 0.0610 | 0.0267 | 0.0019 | 382 B |
MemoryStream | .NET Core 3.1 | 10000 | 2,056.952 ns | 35.0168 ns | 32.7547 ns | 1.00 | 0.00 | 3.6888 | 0.2136 | - | 30888 B |
ArrayPoolStream | .NET Core 3.1 | 10000 | 1,205.772 ns | 15.5382 ns | 14.5345 ns | 0.59 | 0.01 | 2.9316 | - | - | 16472 B |
RecyclableMemoryStream | .NET Core 3.1 | 10000 | 1,853.907 ns | 37.0281 ns | 90.8307 ns | 0.91 | 0.04 | 0.0439 | 0.0191 | 0.0019 | 362 B |
MemoryStream | .NET 4.7.2 | 100000 | 47,175.031 ns | 123.6179 ns | 115.6322 ns | 1.00 | 0.00 | 41.6260 | 41.6260 | 41.6260 | 260654 B |
ArrayPoolStream | .NET 4.7.2 | 100000 | 39,193.530 ns | 187.9967 ns | 166.6542 ns | 0.83 | 0.00 | 41.6260 | 41.6260 | 41.6260 | 131437 B |
RecyclableMemoryStream | .NET 4.7.2 | 100000 | 9,351.758 ns | 95.2914 ns | 79.5726 ns | 0.20 | 0.00 | 0.0305 | - | - | 358 B |
MemoryStream | .NET Core 3.1 | 100000 | 47,428.942 ns | 448.2664 ns | 419.3087 ns | 1.00 | 0.00 | 41.6260 | 41.6260 | 41.6260 | 260336 B |
ArrayPoolStream | .NET Core 3.1 | 100000 | 39,455.087 ns | 281.2642 ns | 263.0947 ns | 0.83 | 0.01 | 41.6260 | 41.6260 | 41.6260 | 131160 B |
RecyclableMemoryStream | .NET Core 3.1 | 100000 | 9,082.992 ns | 33.3913 ns | 31.2342 ns | 0.19 | 0.00 | 0.0305 | - | - | 290 B |
MemoryStream | .NET 4.7.2 | 1000000 | 654,992.341 ns | 1,997.3845 ns | 1,770.6293 ns | 1.00 | 0.00 | 499.0234 | 499.0234 | 499.0234 | 2097440 B |
ArrayPoolStream | .NET 4.7.2 | 1000000 | 141,186.688 ns | 2,813.2970 ns | 5,420.2681 ns | 0.22 | 0.01 | 247.8027 | 247.5586 | 247.5586 | 1050765 B |
RecyclableMemoryStream | .NET 4.7.2 | 1000000 | 88,965.111 ns | 658.3933 ns | 583.6485 ns | 0.14 | 0.00 | - | - | - | 466 B |
MemoryStream | .NET Core 3.1 | 1000000 | 662,877.822 ns | 2,897.4244 ns | 2,710.2526 ns | 1.00 | 0.00 | 499.0234 | 499.0234 | 499.0234 | 2095416 B |
ArrayPoolStream | .NET Core 3.1 | 1000000 | 117,841.641 ns | 2,111.5701 ns | 1,975.1640 ns | 0.18 | 0.00 | 249.2676 | 249.0234 | 249.0234 | 1048808 B |
RecyclableMemoryStream | .NET Core 3.1 | 1000000 | 86,971.176 ns | 493.5654 ns | 437.5329 ns | 0.13 | 0.00 | - | - | - | 448 B |
MemoryStream | .NET 4.7.2 | 5000000 | 4,997,106.719 ns | 59,552.7542 ns | 55,705.6832 ns | 1.00 | 0.00 | 742.1875 | 742.1875 | 742.1875 | 16777576 B |
ArrayPoolStream | .NET 4.7.2 | 5000000 | 4,541,497.604 ns | 37,628.5703 ns | 35,197.7880 ns | 0.91 | 0.01 | 406.2500 | 406.2500 | 406.2500 | 14681191 B |
RecyclableMemoryStream | .NET 4.7.2 | 5000000 | 444,475.013 ns | 3,394.3243 ns | 3,175.0531 ns | 0.09 | 0.00 | - | - | - | 1440 B |
MemoryStream | .NET Core 3.1 | 5000000 | 5,080,289.844 ns | 24,816.8018 ns | 23,213.6518 ns | 1.00 | 0.00 | 742.1875 | 742.1875 | 742.1875 | 16775549 B |
ArrayPoolStream | .NET Core 3.1 | 5000000 | 4,581,092.552 ns | 51,689.1926 ns | 48,350.1028 ns | 0.90 | 0.01 | 406.2500 | 406.2500 | 406.2500 | 14680198 B |
RecyclableMemoryStream | .NET Core 3.1 | 5000000 | 436,530.762 ns | 3,092.1279 ns | 2,741.0909 ns | 0.09 | 0.00 | - | - | - | 1417 B |
MemoryStream | .NET 4.7.2 | 10000000 | 10,611,844.271 ns | 107,145.9158 ns | 100,224.3561 ns | 1.00 | 0.00 | 1484.3750 | 1484.3750 | 1484.3750 | 33554816 B |
ArrayPoolStream | .NET 4.7.2 | 10000000 | 10,675,970.081 ns | 210,178.4128 ns | 294,640.7808 ns | 1.00 | 0.03 | 640.6250 | 640.6250 | 640.6250 | 31459160 B |
RecyclableMemoryStream | .NET 4.7.2 | 10000000 | 899,959.691 ns | 12,101.5049 ns | 10,105.3046 ns | 0.08 | 0.00 | - | - | - | 2496 B |
MemoryStream | .NET Core 3.1 | 10000000 | 10,484,287.188 ns | 94,963.8119 ns | 88,829.2086 ns | 1.00 | 0.00 | 1484.3750 | 1484.3750 | 1484.3750 | 33552780 B |
ArrayPoolStream | .NET Core 3.1 | 10000000 | 12,541,539.844 ns | 62,052.4208 ns | 55,007.8548 ns | 1.20 | 0.01 | 640.6250 | 640.6250 | 640.6250 | 31457432 B |
RecyclableMemoryStream | .NET Core 3.1 | 10000000 | 874,434.193 ns | 6,288.8093 ns | 5,882.5561 ns | 0.08 | 0.00 | - | - | - | 2464 B |
MemoryStream | .NET 4.7.2 | 50000000 | 48,842,408.485 ns | 290,148.3675 ns | 271,404.9629 ns | 1.00 | 0.00 | 3909.0909 | 3909.0909 | 3909.0909 | 134218160 B |
ArrayPoolStream | .NET 4.7.2 | 50000000 | 48,533,021.818 ns | 945,218.6395 ns | 884,158.1019 ns | 0.99 | 0.02 | 1909.0909 | 1909.0909 | 1909.0909 | 132126025 B |
RecyclableMemoryStream | .NET 4.7.2 | 50000000 | 4,478,409.375 ns | 39,180.4535 ns | 36,649.4205 ns | 0.09 | 0.00 | - | - | - | 8704 B |
MemoryStream | .NET Core 3.1 | 50000000 | 48,364,053.333 ns | 392,719.9978 ns | 367,350.5296 ns | 1.00 | 0.00 | 3909.0909 | 3909.0909 | 3909.0909 | 134216233 B |
ArrayPoolStream | .NET Core 3.1 | 50000000 | 46,871,068.831 ns | 154,258.7105 ns | 136,746.3289 ns | 0.97 | 0.01 | 1909.0909 | 1909.0909 | 1909.0909 | 132120882 B |
RecyclableMemoryStream | .NET Core 3.1 | 50000000 | 4,352,979.844 ns | 26,941.8210 ns | 25,201.3961 ns | 0.09 | 0.00 | - | - | - | 8656 B |
results with sequence implementation; at the high end, still out-performed by RecyclableMemoryStream
Method | Runtime | Bytes | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|---|---|---|
MemoryStream | .NET 4.7.2 | 0 | 31.56 ns | 0.798 ns | 1.768 ns | 30.91 ns | 1.00 | 0.00 | 0.0165 | - | - | 104 B |
ArrayPoolStream | .NET 4.7.2 | 0 | 79.62 ns | 0.372 ns | 0.348 ns | 79.71 ns | 2.49 | 0.14 | 0.0509 | - | - | 321 B |
RecyclableMemoryStream | .NET 4.7.2 | 0 | 1,347.77 ns | 26.626 ns | 47.327 ns | 1,352.22 ns | 42.22 | 3.25 | 0.0534 | 0.0172 | 0.0019 | 518 B |
MemoryStream | .NET Core 3.1 | 0 | 10.08 ns | 0.224 ns | 0.199 ns | 10.03 ns | 1.00 | 0.00 | 0.0086 | - | - | 72 B |
ArrayPoolStream | .NET Core 3.1 | 0 | 40.12 ns | 0.822 ns | 0.807 ns | 40.13 ns | 3.99 | 0.12 | 0.0373 | - | - | 312 B |
RecyclableMemoryStream | .NET Core 3.1 | 0 | 1,244.11 ns | 24.744 ns | 59.285 ns | 1,249.98 ns | 122.38 | 4.74 | 0.0381 | 0.0191 | 0.0019 | 1412 B |
MemoryStream | .NET 4.7.2 | 100 | 65.18 ns | 0.537 ns | 0.502 ns | 65.18 ns | 1.00 | 0.00 | 0.0612 | - | - | 385 B |
ArrayPoolStream | .NET 4.7.2 | 100 | 101.02 ns | 5.968 ns | 6.128 ns | 99.50 ns | 1.55 | 0.10 | 0.0509 | - | - | 321 B |
RecyclableMemoryStream | .NET 4.7.2 | 100 | 1,403.89 ns | 27.776 ns | 63.260 ns | 1,394.41 ns | 21.93 | 0.89 | 0.0553 | 0.0191 | 0.0019 | 740 B |
MemoryStream | .NET Core 3.1 | 100 | 42.51 ns | 0.508 ns | 0.475 ns | 42.51 ns | 1.00 | 0.00 | 0.0421 | - | - | 352 B |
ArrayPoolStream | .NET Core 3.1 | 100 | 49.18 ns | 0.681 ns | 0.604 ns | 49.16 ns | 1.16 | 0.02 | 0.0373 | - | - | 312 B |
RecyclableMemoryStream | .NET Core 3.1 | 100 | 1,041.01 ns | 35.011 ns | 101.014 ns | 1,013.24 ns | 25.03 | 2.67 | 0.0420 | 0.0191 | 0.0038 | 333 B |
MemoryStream | .NET 4.7.2 | 1000 | 115.50 ns | 1.511 ns | 1.413 ns | 115.81 ns | 1.00 | 0.00 | 0.1796 | 0.0006 | - | 1131 B |
ArrayPoolStream | .NET 4.7.2 | 1000 | 380.22 ns | 1.978 ns | 1.850 ns | 380.46 ns | 3.29 | 0.04 | 0.3781 | 0.0029 | - | 2383 B |
RecyclableMemoryStream | .NET 4.7.2 | 1000 | 1,445.68 ns | 28.936 ns | 75.207 ns | 1,436.08 ns | 12.66 | 0.55 | 0.0553 | 0.0191 | 0.0019 | 381 B |
MemoryStream | .NET Core 3.1 | 1000 | 88.63 ns | 0.905 ns | 0.846 ns | 88.63 ns | 1.00 | 0.00 | 0.1310 | 0.0005 | - | 1096 B |
ArrayPoolStream | .NET Core 3.1 | 1000 | 352.14 ns | 2.430 ns | 2.273 ns | 352.23 ns | 3.97 | 0.05 | 0.3066 | 0.0014 | - | 2368 B |
RecyclableMemoryStream | .NET Core 3.1 | 1000 | 1,349.20 ns | 27.007 ns | 63.659 ns | 1,350.24 ns | 15.17 | 0.60 | 0.0420 | 0.0191 | 0.0019 | 345 B |
MemoryStream | .NET 4.7.2 | 10000 | 2,085.00 ns | 25.176 ns | 23.549 ns | 2,082.40 ns | 1.00 | 0.00 | 4.9210 | 0.3510 | - | 31002 B |
ArrayPoolStream | .NET 4.7.2 | 10000 | 1,579.61 ns | 11.700 ns | 10.944 ns | 1,578.85 ns | 0.76 | 0.01 | 2.7008 | 0.1335 | - | 17026 B |
RecyclableMemoryStream | .NET 4.7.2 | 10000 | 1,849.66 ns | 39.236 ns | 115.689 ns | 1,850.39 ns | 0.91 | 0.06 | 0.0629 | 0.0305 | 0.0019 | 394 B |
MemoryStream | .NET Core 3.1 | 10000 | 1,993.51 ns | 28.475 ns | 26.635 ns | 1,993.91 ns | 1.00 | 0.00 | 3.6888 | 0.2136 | - | 30888 B |
ArrayPoolStream | .NET Core 3.1 | 10000 | 1,503.49 ns | 16.398 ns | 15.339 ns | 1,508.54 ns | 0.75 | 0.01 | 3.4237 | - | - | 16968 B |
RecyclableMemoryStream | .NET Core 3.1 | 10000 | 1,761.46 ns | 37.728 ns | 110.649 ns | 1,749.59 ns | 0.88 | 0.07 | 0.0420 | 0.0191 | - | 367 B |
MemoryStream | .NET 4.7.2 | 100000 | 47,137.33 ns | 347.798 ns | 308.314 ns | 47,276.85 ns | 1.00 | 0.00 | 41.6260 | 41.6260 | 41.6260 | 260654 B |
ArrayPoolStream | .NET 4.7.2 | 100000 | 9,119.75 ns | 121.150 ns | 113.324 ns | 9,164.73 ns | 0.19 | 0.00 | 20.8282 | 5.2032 | - | 132117 B |
RecyclableMemoryStream | .NET 4.7.2 | 100000 | 9,364.11 ns | 53.892 ns | 50.411 ns | 9,347.91 ns | 0.20 | 0.00 | 0.0305 | - | - | 358 B |
MemoryStream | .NET Core 3.1 | 100000 | 47,186.31 ns | 336.385 ns | 314.655 ns | 47,316.02 ns | 1.00 | 0.00 | 41.6260 | 41.6260 | 41.6260 | 260336 B |
ArrayPoolStream | .NET Core 3.1 | 100000 | 6,592.10 ns | 60.844 ns | 53.937 ns | 6,601.57 ns | 0.14 | 0.00 | 19.9966 | - | - | 131920 B |
RecyclableMemoryStream | .NET Core 3.1 | 100000 | 9,089.94 ns | 29.140 ns | 22.750 ns | 9,083.63 ns | 0.19 | 0.00 | 0.0305 | - | - | 376 B |
MemoryStream | .NET 4.7.2 | 1000000 | 659,018.44 ns | 3,564.192 ns | 3,333.947 ns | 659,427.73 ns | 1.00 | 0.00 | 499.0234 | 499.0234 | 499.0234 | 2097440 B |
ArrayPoolStream | .NET 4.7.2 | 1000000 | 235,549.60 ns | 1,668.706 ns | 1,560.908 ns | 235,699.00 ns | 0.36 | 0.00 | 285.6445 | 285.6445 | 285.6445 | 1051182 B |
RecyclableMemoryStream | .NET 4.7.2 | 1000000 | 88,706.27 ns | 545.722 ns | 483.769 ns | 88,491.26 ns | 0.13 | 0.00 | - | - | - | 466 B |
MemoryStream | .NET Core 3.1 | 1000000 | 659,999.81 ns | 3,722.896 ns | 3,482.399 ns | 660,565.82 ns | 1.00 | 0.00 | 499.0234 | 499.0234 | 499.0234 | 2095416 B |
ArrayPoolStream | .NET Core 3.1 | 1000000 | 229,783.14 ns | 2,136.096 ns | 1,998.105 ns | 229,855.64 ns | 0.35 | 0.00 | 285.6445 | 285.6445 | 285.6445 | 1049688 B |
RecyclableMemoryStream | .NET Core 3.1 | 1000000 | 89,642.65 ns | 1,936.269 ns | 3,071.128 ns | 88,432.63 ns | 0.14 | 0.01 | - | - | - | 448 B |
MemoryStream | .NET 4.7.2 | 5000000 | 5,041,604.06 ns | 55,208.172 ns | 51,641.758 ns | 5,041,765.63 ns | 1.00 | 0.00 | 742.1875 | 742.1875 | 742.1875 | 16777576 B |
ArrayPoolStream | .NET 4.7.2 | 5000000 | 955,920.57 ns | 5,690.019 ns | 5,322.447 ns | 957,413.48 ns | 0.19 | 0.00 | 798.8281 | 798.8281 | 798.8281 | 8400400 B |
RecyclableMemoryStream | .NET 4.7.2 | 5000000 | 442,755.70 ns | 3,541.614 ns | 3,312.827 ns | 442,652.73 ns | 0.09 | 0.00 | - | - | - | 1440 B |
MemoryStream | .NET Core 3.1 | 5000000 | 5,071,695.16 ns | 19,295.652 ns | 18,049.164 ns | 5,067,605.47 ns | 1.00 | 0.00 | 742.1875 | 742.1875 | 742.1875 | 16775546 B |
ArrayPoolStream | .NET Core 3.1 | 5000000 | 919,627.91 ns | 42,034.376 ns | 122,616.248 ns | 924,529.59 ns | 0.20 | 0.02 | 998.0469 | 998.0469 | 998.0469 | 8394483 B |
RecyclableMemoryStream | .NET Core 3.1 | 5000000 | 436,131.11 ns | 2,501.133 ns | 2,339.562 ns | 436,214.26 ns | 0.09 | 0.00 | - | - | - | 1416 B |
MemoryStream | .NET 4.7.2 | 10000000 | 10,256,499.48 ns | 38,937.840 ns | 36,422.479 ns | 10,260,367.19 ns | 1.00 | 0.00 | 1484.3750 | 1484.3750 | 1484.3750 | 33554816 B |
ArrayPoolStream | .NET 4.7.2 | 10000000 | 3,877,524.34 ns | 44,963.928 ns | 37,546.917 ns | 3,876,889.84 ns | 0.38 | 0.00 | 667.9688 | 667.9688 | 667.9688 | 16783080 B |
RecyclableMemoryStream | .NET 4.7.2 | 10000000 | 908,747.61 ns | 18,122.028 ns | 18,609.989 ns | 904,033.20 ns | 0.09 | 0.00 | - | - | - | 2496 B |
MemoryStream | .NET Core 3.1 | 10000000 | 10,563,231.38 ns | 44,563.358 ns | 34,792.139 ns | 10,560,396.09 ns | 1.00 | 0.00 | 1484.3750 | 1484.3750 | 1484.3750 | 33552780 B |
ArrayPoolStream | .NET Core 3.1 | 10000000 | 3,602,297.04 ns | 115,478.668 ns | 118,588.090 ns | 3,539,509.38 ns | 0.34 | 0.01 | 667.9688 | 667.9688 | 667.9688 | 16778672 B |
RecyclableMemoryStream | .NET Core 3.1 | 10000000 | 871,378.97 ns | 5,613.780 ns | 5,251.133 ns | 871,716.21 ns | 0.08 | 0.00 | - | - | - | 2464 B |
MemoryStream | .NET 4.7.2 | 50000000 | 48,372,867.13 ns | 170,973.312 ns | 142,770.459 ns | 48,395,772.73 ns | 1.00 | 0.00 | 3909.0909 | 3909.0909 | 3909.0909 | 134218160 B |
ArrayPoolStream | .NET 4.7.2 | 50000000 | 12,937,835.44 ns | 253,637.548 ns | 437,512.308 ns | 13,022,316.41 ns | 0.27 | 0.01 | 937.5000 | 937.5000 | 937.5000 | 50342363 B |
RecyclableMemoryStream | .NET 4.7.2 | 50000000 | 4,412,522.19 ns | 38,235.410 ns | 35,765.426 ns | 4,408,968.75 ns | 0.09 | 0.00 | - | - | - | 8704 B |
MemoryStream | .NET Core 3.1 | 50000000 | 47,986,537.58 ns | 206,108.129 ns | 192,793.671 ns | 47,892,845.45 ns | 1.00 | 0.00 | 3909.0909 | 3909.0909 | 3909.0909 | 134216233 B |
ArrayPoolStream | .NET Core 3.1 | 50000000 | 19,247,789.17 ns | 76,336.234 ns | 71,404.961 ns | 19,252,596.88 ns | 0.40 | 0.00 | 1000.0000 | 1000.0000 | 1000.0000 | 50333456 B |
RecyclableMemoryStream | .NET Core 3.1 | 50000000 | 4,349,538.73 ns | 32,147.315 ns | 28,497.758 ns | 4,351,389.06 ns | 0.09 | 0.00 | - | - | - | 8666 B |
The plan here is to work towards a
Sequence<byte>
based implementation using increasing sizes of buffers