Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Finish BitArray performance optimizations using AVX from #39173 #31161

Closed
adamsitnik opened this issue Oct 14, 2019 · 30 comments
Closed

Finish BitArray performance optimizations using AVX from #39173 #31161

adamsitnik opened this issue Oct 14, 2019 · 30 comments
Assignees
Labels
Hackathon Issues picked for Hackathon tenet-performance Performance related issue
Milestone

Comments

@adamsitnik
Copy link
Member

@BruceForstall has done some great job optimizing BitArray in dotnet/corefx#39173 . The PR was closed because Bruce has currently no time to finish it.

A contributor who would like to work on this issue should:

The issue should be a great excercie for somebody who wants to learn more about vectorizing code using the new .NET Core 3.0 CPU Intrinsics API

@Gnbrkm41
Copy link
Contributor

I'm interested; Vectorisation always seemed fun :^) Hopefully I can pick up some more knowledge on this.

@adamsitnik
Copy link
Member Author

@Gnbrkm41 awesome! I've assigned you ;) Please let me know if you need any help

@EgorBo
Copy link
Member

EgorBo commented Oct 14, 2019

Note on benchmarks - they seem to be benchmarking stuff for a fixed size (500?) bitarrays and I suspect AVX2 impl will regress small arrays (that's why I didn't add it in my initial simd bitarray PR) so I'd run them for a range of sizes starting from 1.

@Gnbrkm41
Copy link
Contributor

Yes, I am aware of the issues with the 256bit path from my personal experiment with this. I'm not sure if it would worth to do a length check then pick whatever path is appropriate...

It also would be helpful if we know what the average length of the BitArray is.

@EgorBo
Copy link
Member

EgorBo commented Oct 14, 2019

It also would be helpful if we know what the average length of the BitArray is.

@Gnbrkm41 see dotnet/corefx#33367 (comment)

@GrabYourPitchforks
Copy link
Member

Another thing to keep in mind is that (at least on Intel) using AVX2 instructions may downclock the CPU. This could regress application-wide performance if BitArray usage doesn't represent a sizeable chunk of an application's overall workload. We should be running real world benchmarks for these particular perf optimizations, not microbenchmarks.

@tannergooding
Copy link
Member

This could regress application-wide performance

A thing to keep in mind is that this only impacts the core the instructions were running on and light integer 256-bit usage isn't likely to cause the downclocking.

From the relevant section (15.26) in the Architectures Optimization Reference Manual (noting that this section is specifically on Skylake but it also impacts older architectures, albeit differently, etc):
image

When the core requests a higher license level than its current one, it takes the PCU up to 500 microseconds to grant the new license. Until then the core operates at a lower peak capability. During this time period the PCU evaluates how many cores are executing at the new license level and adjusts their frequency as necessary, potentially lowering the frequency. Cores that execute at other license levels are not affected.

A timer of approximately 2ms is applied before going back to a higher frequency level. Any condition that would have requested a new license resets the timer.

NOTES: A license transition request may occur when executing instructions on a mis-speculated
path.

A large enough mix of Intel AVX-512 light instructions and Intel AVX2 heavy instructions drives the core to request License 2, despite the fact that they usually map to License 1. The same is true for Intel AVX2 light instructions and Intel SSE heavy instructions that may drive the core to License 1 rather than License 0. For example, The Intel® Xeon® Platinum 8180 processor moves from license 1 to license 2 when executing a mix of 110 Intel AVX-512 light instructions and 20 256-bit heavy instructions over a window of 65 cycles.

@jkotas
Copy link
Member

jkotas commented Oct 14, 2019

AVX2

To make progress, it would best to omit the AVX2 completely in the first iteration. Focus on preparing PR with just SSE2 path first. Look into the AVX2 optimization only after the SSE2 PR is done and accepted.

@Gnbrkm41
Copy link
Contributor

@jkotas, all the methods except the Not case already have been optimised to use SSE2 by @EgorBo; we're trying to see if using AVX2 is beneficial here.

@jkotas jkotas changed the title Finish BitArray performance optimizations from #39173 Finish BitArray performance optimizations using AVX from #39173 Oct 14, 2019
@Gnbrkm41
Copy link
Contributor

Gnbrkm41 commented Oct 15, 2019

Old wrong benchmark - see below

Here's the results of the benchmarks as of the state from dotnet/corefx#39173. I've added the test case for Size = 4 and with all Intrinsics disabled, AVX2 disabled then all enabled: benchmarks.zip

Before the change (SDK 5.0.100-alpha1-014885)
BenchmarkDotNet=v0.11.5.1159-nightly, OS=Windows 10.0.18999
Intel Core i7-8700 CPU 3.20GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical cores
.NET Core SDK=5.0.100-alpha1-014885
  [Host]     : .NET Core 5.0.0-alpha1.19507.3 (CoreCLR 5.0.19.50101, CoreFX 5.0.19.50407), X64 RyuJIT
  Job-NNUBIL : .NET Core 5.0.0-alpha1.19507.3 (CoreCLR 5.0.19.50101, CoreFX 5.0.19.50407), X64 RyuJIT
  Job-VKYLDZ : .NET Core 5.0.0-alpha1.19507.3 (CoreCLR 5.0.19.50101, CoreFX 5.0.19.50407), X64 RyuJIT
  Job-SWUKUE : .NET Core 5.0.0-alpha1.19507.3 (CoreCLR 5.0.19.50101, CoreFX 5.0.19.50407), X64 RyuJIT

PowerPlanMode=00000000-0000-0000-0000-000000000000  Runtime=.NET Core 5.0  IterationTime=250.0000 ms  
MaxIterationCount=20  MinIterationCount=15  WarmupCount=1  
Method EnvironmentVariables Size Mean Error StdDev Median Min Max Gen 0 Gen 1 Gen 2 Allocated
BitArrayLengthCtor EnableAVX2=0 4 7.3624 ns 0.1421 ns 0.1329 ns 7.3419 ns 7.2167 ns 7.6377 ns 0.0102 - - 64 B
BitArrayLengthValueCtor EnableAVX2=0 4 9.9076 ns 0.2658 ns 0.2486 ns 9.8450 ns 9.6792 ns 10.4453 ns 0.0102 - - 64 B
BitArrayBitArrayCtor EnableAVX2=0 4 15.7142 ns 0.2498 ns 0.2215 ns 15.6182 ns 15.5394 ns 16.2755 ns 0.0102 - - 64 B
BitArrayBoolArrayCtor EnableAVX2=0 4 11.0114 ns 0.0695 ns 0.0650 ns 10.9919 ns 10.8953 ns 11.1512 ns 0.0102 - - 64 B
BitArrayByteArrayCtor EnableAVX2=0 4 8.4727 ns 0.0465 ns 0.0435 ns 8.4757 ns 8.3699 ns 8.5360 ns 0.0102 - - 64 B
BitArrayIntArrayCtor EnableAVX2=0 4 15.5891 ns 0.1021 ns 0.0853 ns 15.5777 ns 15.4604 ns 15.7984 ns 0.0115 - - 72 B
BitArraySetAll EnableAVX2=0 4 0.9729 ns 0.0101 ns 0.0089 ns 0.9698 ns 0.9624 ns 0.9931 ns - - - -
BitArrayNot EnableAVX2=0 4 0.9703 ns 0.0069 ns 0.0057 ns 0.9686 ns 0.9651 ns 0.9807 ns - - - -
BitArrayGet EnableAVX2=0 4 26.4468 ns 0.3202 ns 0.2673 ns 26.3865 ns 26.2270 ns 27.1987 ns - - - -
BitArrayRightShift EnableAVX2=0 4 4.8917 ns 0.0179 ns 0.0150 ns 4.8999 ns 4.8589 ns 4.9043 ns - - - -
BitArrayLeftShift EnableAVX2=0 4 4.8569 ns 0.0187 ns 0.0175 ns 4.8547 ns 4.8137 ns 4.8864 ns - - - -
BitArrayAnd EnableAVX2=0 4 2.2790 ns 0.0152 ns 0.0135 ns 2.2741 ns 2.2587 ns 2.2990 ns - - - -
BitArrayOr EnableAVX2=0 4 2.2533 ns 0.0047 ns 0.0037 ns 2.2529 ns 2.2492 ns 2.2618 ns - - - -
BitArrayXor EnableAVX2=0 4 2.2162 ns 0.0157 ns 0.0140 ns 2.2079 ns 2.2037 ns 2.2414 ns - - - -
BitArraySet EnableAVX2=0 4 4.8965 ns 0.0179 ns 0.0159 ns 4.8950 ns 4.8720 ns 4.9248 ns - - - -
BitArraySetLengthGrow EnableAVX2=0 4 29.5870 ns 0.1524 ns 0.1425 ns 29.5884 ns 29.3540 ns 29.8135 ns 0.0152 - - 96 B
BitArraySetLengthShrink EnableAVX2=0 4 10.5828 ns 0.0936 ns 0.0830 ns 10.5744 ns 10.4684 ns 10.7751 ns 0.0102 - - 64 B
BitArrayCopyToIntArray EnableAVX2=0 4 13.6032 ns 0.0834 ns 0.0780 ns 13.5839 ns 13.5146 ns 13.7501 ns - - - -
BitArrayCopyToByteArray EnableAVX2=0 4 23.1127 ns 0.0459 ns 0.0384 ns 23.1183 ns 23.0534 ns 23.1875 ns - - - -
BitArrayCopyToBoolArray EnableAVX2=0 4 74.6389 ns 0.1459 ns 0.1219 ns 74.5937 ns 74.5023 ns 74.9310 ns - - - -
BitArrayLengthCtor EnableHWIntrinsic=0 4 7.3651 ns 0.0968 ns 0.0858 ns 7.3626 ns 7.2116 ns 7.5060 ns 0.0102 - - 64 B
BitArrayLengthValueCtor EnableHWIntrinsic=0 4 9.7854 ns 0.0342 ns 0.0320 ns 9.7802 ns 9.7443 ns 9.8650 ns 0.0102 - - 64 B
BitArrayBitArrayCtor EnableHWIntrinsic=0 4 15.3377 ns 0.1449 ns 0.1210 ns 15.3651 ns 15.1725 ns 15.6204 ns 0.0101 - - 64 B
BitArrayBoolArrayCtor EnableHWIntrinsic=0 4 10.2193 ns 0.0725 ns 0.0679 ns 10.2112 ns 10.1338 ns 10.3305 ns 0.0102 - - 64 B
BitArrayByteArrayCtor EnableHWIntrinsic=0 4 8.4076 ns 0.1134 ns 0.1005 ns 8.3681 ns 8.3315 ns 8.6092 ns 0.0102 - - 64 B
BitArrayIntArrayCtor EnableHWIntrinsic=0 4 15.6411 ns 0.0759 ns 0.0710 ns 15.6319 ns 15.5196 ns 15.7763 ns 0.0114 - - 72 B
BitArraySetAll EnableHWIntrinsic=0 4 0.9711 ns 0.0071 ns 0.0067 ns 0.9684 ns 0.9640 ns 0.9857 ns - - - -
BitArrayNot EnableHWIntrinsic=0 4 0.9554 ns 0.0080 ns 0.0063 ns 0.9584 ns 0.9429 ns 0.9613 ns - - - -
BitArrayGet EnableHWIntrinsic=0 4 26.3986 ns 0.0675 ns 0.0564 ns 26.3960 ns 26.3143 ns 26.5195 ns - - - -
BitArrayRightShift EnableHWIntrinsic=0 4 4.9828 ns 0.1227 ns 0.1088 ns 4.9714 ns 4.8613 ns 5.2108 ns - - - -
BitArrayLeftShift EnableHWIntrinsic=0 4 4.9593 ns 0.1373 ns 0.1217 ns 4.9159 ns 4.8568 ns 5.2643 ns - - - -
BitArrayAnd EnableHWIntrinsic=0 4 2.3501 ns 0.1171 ns 0.1348 ns 2.2906 ns 2.2244 ns 2.6789 ns - - - -
BitArrayOr EnableHWIntrinsic=0 4 2.6433 ns 0.0942 ns 0.0786 ns 2.6404 ns 2.5516 ns 2.7755 ns - - - -
BitArrayXor EnableHWIntrinsic=0 4 2.2194 ns 0.0219 ns 0.0194 ns 2.2271 ns 2.1850 ns 2.2457 ns - - - -
BitArraySet EnableHWIntrinsic=0 4 4.8977 ns 0.0149 ns 0.0132 ns 4.8953 ns 4.8780 ns 4.9230 ns - - - -
BitArraySetLengthGrow EnableHWIntrinsic=0 4 29.1697 ns 0.0959 ns 0.0850 ns 29.1771 ns 29.0448 ns 29.3491 ns 0.0152 - - 96 B
BitArraySetLengthShrink EnableHWIntrinsic=0 4 10.5102 ns 0.0861 ns 0.0763 ns 10.5116 ns 10.3983 ns 10.6524 ns 0.0102 - - 64 B
BitArrayCopyToIntArray EnableHWIntrinsic=0 4 13.6157 ns 0.0382 ns 0.0358 ns 13.6197 ns 13.5632 ns 13.6679 ns - - - -
BitArrayCopyToByteArray EnableHWIntrinsic=0 4 23.1800 ns 0.0886 ns 0.0740 ns 23.1750 ns 23.0437 ns 23.3245 ns - - - -
BitArrayCopyToBoolArray EnableHWIntrinsic=0 4 75.0279 ns 0.3866 ns 0.3228 ns 75.0677 ns 74.4652 ns 75.7233 ns - - - -
BitArrayLengthCtor Empty 4 7.3297 ns 0.0598 ns 0.0530 ns 7.3334 ns 7.2500 ns 7.4445 ns 0.0102 - - 64 B
BitArrayLengthValueCtor Empty 4 9.7278 ns 0.0654 ns 0.0579 ns 9.7225 ns 9.6326 ns 9.8335 ns 0.0102 - - 64 B
BitArrayBitArrayCtor Empty 4 15.2719 ns 0.0723 ns 0.0677 ns 15.2636 ns 15.1981 ns 15.4077 ns 0.0102 - - 64 B
BitArrayBoolArrayCtor Empty 4 10.2119 ns 0.0443 ns 0.0415 ns 10.2161 ns 10.1308 ns 10.2696 ns 0.0102 - - 64 B
BitArrayByteArrayCtor Empty 4 8.5415 ns 0.2037 ns 0.1806 ns 8.5168 ns 8.3512 ns 9.0026 ns 0.0102 - - 64 B
BitArrayIntArrayCtor Empty 4 15.5535 ns 0.1033 ns 0.0916 ns 15.5471 ns 15.4193 ns 15.7037 ns 0.0115 - - 72 B
BitArraySetAll Empty 4 0.9665 ns 0.0054 ns 0.0045 ns 0.9649 ns 0.9605 ns 0.9744 ns - - - -
BitArrayNot Empty 4 0.9517 ns 0.0082 ns 0.0073 ns 0.9501 ns 0.9422 ns 0.9634 ns - - - -
BitArrayGet Empty 4 27.2696 ns 0.1825 ns 0.1618 ns 27.2553 ns 27.1023 ns 27.6057 ns - - - -
BitArrayRightShift Empty 4 4.8858 ns 0.0181 ns 0.0160 ns 4.8787 ns 4.8696 ns 4.9156 ns - - - -
BitArrayLeftShift Empty 4 4.8593 ns 0.0241 ns 0.0188 ns 4.8561 ns 4.8247 ns 4.8847 ns - - - -
BitArrayAnd Empty 4 2.2864 ns 0.0569 ns 0.0533 ns 2.2636 ns 2.2271 ns 2.3997 ns - - - -
BitArrayOr Empty 4 2.2509 ns 0.0113 ns 0.0106 ns 2.2517 ns 2.2363 ns 2.2728 ns - - - -
BitArrayXor Empty 4 2.2000 ns 0.0153 ns 0.0143 ns 2.1992 ns 2.1828 ns 2.2242 ns - - - -
BitArraySet Empty 4 4.8995 ns 0.0219 ns 0.0194 ns 4.8988 ns 4.8713 ns 4.9391 ns - - - -
BitArraySetLengthGrow Empty 4 29.3072 ns 0.1570 ns 0.1392 ns 29.3127 ns 29.1148 ns 29.4954 ns 0.0152 - - 96 B
BitArraySetLengthShrink Empty 4 10.5168 ns 0.0408 ns 0.0361 ns 10.5255 ns 10.4583 ns 10.5684 ns 0.0102 - - 64 B
BitArrayCopyToIntArray Empty 4 13.6108 ns 0.0671 ns 0.0595 ns 13.5953 ns 13.5088 ns 13.6950 ns - - - -
BitArrayCopyToByteArray Empty 4 23.2107 ns 0.0966 ns 0.0806 ns 23.2233 ns 23.1000 ns 23.3801 ns - - - -
BitArrayCopyToBoolArray Empty 4 75.0772 ns 0.5172 ns 0.4584 ns 74.8325 ns 74.6073 ns 76.0578 ns - - - -
BitArrayLengthCtor EnableAVX2=0 512 9.1679 ns 0.1107 ns 0.1036 ns 9.1770 ns 9.0473 ns 9.3667 ns 0.0191 - - 120 B
BitArrayLengthValueCtor EnableAVX2=0 512 14.0363 ns 0.0460 ns 0.0431 ns 14.0309 ns 13.9552 ns 14.1128 ns 0.0191 - - 120 B
BitArrayBitArrayCtor EnableAVX2=0 512 18.8711 ns 0.1167 ns 0.1034 ns 18.8552 ns 18.7603 ns 19.1320 ns 0.0191 - - 120 B
BitArrayBoolArrayCtor EnableAVX2=0 512 432.7931 ns 6.8031 ns 6.3636 ns 429.0231 ns 426.8530 ns 446.8902 ns 0.0190 - - 120 B
BitArrayByteArrayCtor EnableAVX2=0 512 135.7479 ns 0.7384 ns 0.6907 ns 135.7600 ns 134.2741 ns 136.8951 ns 0.0905 - - 568 B
BitArrayIntArrayCtor EnableAVX2=0 512 110.1788 ns 2.1905 ns 2.0490 ns 110.2023 ns 107.5048 ns 113.5151 ns 0.3351 0.0049 - 2104 B
BitArraySetAll EnableAVX2=0 512 55.4857 ns 0.0934 ns 0.0874 ns 55.4598 ns 55.4120 ns 55.7000 ns - - - -
BitArrayNot EnableAVX2=0 512 64.6480 ns 0.1710 ns 0.1599 ns 64.6053 ns 64.4282 ns 64.8628 ns - - - -
BitArrayGet EnableAVX2=0 512 3,373.0464 ns 9.8556 ns 8.7368 ns 3,369.1992 ns 3,360.4768 ns 3,388.5008 ns - - - -
BitArrayRightShift EnableAVX2=0 512 210.7122 ns 0.6371 ns 0.5320 ns 210.4836 ns 209.8818 ns 211.4174 ns - - - -
BitArrayLeftShift EnableAVX2=0 512 211.6732 ns 1.3406 ns 1.1884 ns 211.1225 ns 210.6305 ns 214.2488 ns - - - -
BitArrayAnd EnableAVX2=0 512 19.1255 ns 0.1427 ns 0.1335 ns 19.1272 ns 18.9333 ns 19.3584 ns - - - -
BitArrayOr EnableAVX2=0 512 17.7472 ns 0.1364 ns 0.1209 ns 17.7000 ns 17.6220 ns 18.0300 ns - - - -
BitArrayXor EnableAVX2=0 512 19.1801 ns 0.0825 ns 0.0689 ns 19.1681 ns 19.1025 ns 19.3630 ns - - - -
BitArraySet EnableAVX2=0 512 640.2224 ns 1.4066 ns 1.2469 ns 639.8046 ns 638.0997 ns 642.5111 ns - - - -
BitArraySetLengthGrow EnableAVX2=0 512 216.2265 ns 1.4612 ns 1.2202 ns 216.6399 ns 214.0656 ns 217.7859 ns 0.2574 0.0026 - 1616 B
BitArraySetLengthShrink EnableAVX2=0 512 139.0495 ns 0.6651 ns 0.5896 ns 138.9255 ns 137.9627 ns 140.0529 ns 0.0900 - - 568 B
BitArrayCopyToIntArray EnableAVX2=0 512 27.6849 ns 0.1240 ns 0.1099 ns 27.6505 ns 27.5736 ns 27.9154 ns - - - -
BitArrayCopyToByteArray EnableAVX2=0 512 126.4186 ns 0.7747 ns 0.7246 ns 126.4198 ns 125.5357 ns 128.0445 ns - - - -
BitArrayCopyToBoolArray EnableAVX2=0 512 5,324.3902 ns 16.8089 ns 14.0362 ns 5,321.5264 ns 5,304.2368 ns 5,359.3389 ns - - - -
BitArrayLengthCtor EnableHWIntrinsic=0 512 9.3129 ns 0.0266 ns 0.0236 ns 9.3092 ns 9.2538 ns 9.3569 ns 0.0191 - - 120 B
BitArrayLengthValueCtor EnableHWIntrinsic=0 512 18.0371 ns 0.0699 ns 0.0620 ns 18.0195 ns 17.9847 ns 18.1727 ns 0.0191 - - 120 B
BitArrayBitArrayCtor EnableHWIntrinsic=0 512 18.9552 ns 0.2822 ns 0.2640 ns 18.8773 ns 18.7156 ns 19.4606 ns 0.0190 - - 120 B
BitArrayBoolArrayCtor EnableHWIntrinsic=0 512 435.0276 ns 8.6589 ns 8.8921 ns 430.5789 ns 425.1529 ns 451.0276 ns 0.0191 - - 120 B
BitArrayByteArrayCtor EnableHWIntrinsic=0 512 136.1910 ns 1.2666 ns 1.1848 ns 135.7573 ns 134.9885 ns 138.6764 ns 0.0905 - - 568 B
BitArrayIntArrayCtor EnableHWIntrinsic=0 512 113.1374 ns 0.7966 ns 0.7451 ns 113.1558 ns 111.4865 ns 114.2302 ns 0.3353 0.0051 - 2104 B
BitArraySetAll EnableHWIntrinsic=0 512 55.4621 ns 0.1451 ns 0.1286 ns 55.4909 ns 55.2897 ns 55.7194 ns - - - -
BitArrayNot EnableHWIntrinsic=0 512 64.7027 ns 0.1722 ns 0.1610 ns 64.6362 ns 64.4691 ns 65.0064 ns - - - -
BitArrayGet EnableHWIntrinsic=0 512 3,375.1432 ns 9.6655 ns 8.0712 ns 3,380.1109 ns 3,360.5868 ns 3,384.1488 ns - - - -
BitArrayRightShift EnableHWIntrinsic=0 512 210.5876 ns 0.6322 ns 0.5604 ns 210.4277 ns 209.8647 ns 211.3237 ns - - - -
BitArrayLeftShift EnableHWIntrinsic=0 512 211.6574 ns 0.4750 ns 0.4443 ns 211.5310 ns 211.2086 ns 212.2876 ns - - - -
BitArrayAnd EnableHWIntrinsic=0 512 19.1169 ns 0.1055 ns 0.0935 ns 19.0752 ns 19.0417 ns 19.3677 ns - - - -
BitArrayOr EnableHWIntrinsic=0 512 18.7845 ns 0.1175 ns 0.0981 ns 18.7824 ns 18.6345 ns 19.0040 ns - - - -
BitArrayXor EnableHWIntrinsic=0 512 20.3785 ns 0.3601 ns 0.3369 ns 20.3646 ns 19.9632 ns 21.0649 ns - - - -
BitArraySet EnableHWIntrinsic=0 512 642.3586 ns 3.1442 ns 2.9410 ns 640.7687 ns 639.3386 ns 647.0343 ns - - - -
BitArraySetLengthGrow EnableHWIntrinsic=0 512 216.8795 ns 1.0930 ns 0.9689 ns 216.5611 ns 215.1225 ns 218.7803 ns 0.2568 0.0026 - 1616 B
BitArraySetLengthShrink EnableHWIntrinsic=0 512 138.7934 ns 1.5132 ns 1.3415 ns 138.2134 ns 137.2115 ns 141.8604 ns 0.0902 - - 568 B
BitArrayCopyToIntArray EnableHWIntrinsic=0 512 26.4441 ns 0.5006 ns 0.4181 ns 26.2723 ns 26.1476 ns 27.5243 ns - - - -
BitArrayCopyToByteArray EnableHWIntrinsic=0 512 126.4343 ns 1.2631 ns 1.0548 ns 126.2322 ns 125.4504 ns 129.3952 ns - - - -
BitArrayCopyToBoolArray EnableHWIntrinsic=0 512 5,336.2140 ns 24.7288 ns 21.9214 ns 5,326.7148 ns 5,307.1851 ns 5,386.2045 ns - - - -
BitArrayLengthCtor Empty 512 10.0146 ns 0.0609 ns 0.0509 ns 10.0388 ns 9.9165 ns 10.0748 ns 0.0191 - - 120 B
BitArrayLengthValueCtor Empty 512 14.0151 ns 0.0813 ns 0.0679 ns 14.0188 ns 13.9184 ns 14.1124 ns 0.0191 - - 120 B
BitArrayBitArrayCtor Empty 512 19.0618 ns 0.2066 ns 0.1832 ns 19.0263 ns 18.7823 ns 19.4223 ns 0.0191 - - 120 B
BitArrayBoolArrayCtor Empty 512 433.4598 ns 11.9260 ns 11.7130 ns 429.3795 ns 424.3663 ns 462.1260 ns 0.0174 - - 120 B
BitArrayByteArrayCtor Empty 512 136.2130 ns 0.7955 ns 0.7441 ns 136.3650 ns 135.1489 ns 137.7904 ns 0.0901 - - 568 B
BitArrayIntArrayCtor Empty 512 110.8142 ns 1.9540 ns 1.8277 ns 111.0965 ns 107.1480 ns 113.7284 ns 0.3351 0.0049 - 2104 B
BitArraySetAll Empty 512 55.4148 ns 0.1143 ns 0.0955 ns 55.3676 ns 55.3266 ns 55.6430 ns - - - -
BitArrayNot Empty 512 64.5286 ns 0.1755 ns 0.1556 ns 64.4659 ns 64.4041 ns 64.9387 ns - - - -
BitArrayGet Empty 512 3,379.7246 ns 11.3813 ns 10.0892 ns 3,381.7769 ns 3,366.6075 ns 3,395.8642 ns - - - -
BitArrayRightShift Empty 512 218.2765 ns 0.7680 ns 0.6808 ns 217.9954 ns 217.5563 ns 219.2350 ns - - - -
BitArrayLeftShift Empty 512 211.5836 ns 0.6710 ns 0.5948 ns 211.6286 ns 210.6870 ns 212.3930 ns - - - -
BitArrayAnd Empty 512 19.3643 ns 0.1631 ns 0.1526 ns 19.3586 ns 19.1396 ns 19.6393 ns - - - -
BitArrayOr Empty 512 17.8830 ns 0.1121 ns 0.0936 ns 17.8622 ns 17.7255 ns 18.0085 ns - - - -
BitArrayXor Empty 512 19.2389 ns 0.0871 ns 0.0773 ns 19.2218 ns 19.0914 ns 19.3496 ns - - - -
BitArraySet Empty 512 641.0184 ns 1.3847 ns 1.2952 ns 641.1289 ns 639.1980 ns 643.5114 ns - - - -
BitArraySetLengthGrow Empty 512 214.4495 ns 0.8418 ns 0.7874 ns 214.2800 ns 213.4970 ns 216.1522 ns 0.2576 0.0017 - 1616 B
BitArraySetLengthShrink Empty 512 139.3154 ns 0.4754 ns 0.4447 ns 139.3018 ns 138.6064 ns 140.0938 ns 0.0902 - - 568 B
BitArrayCopyToIntArray Empty 512 26.0932 ns 0.0924 ns 0.0820 ns 26.1168 ns 25.9535 ns 26.2002 ns - - - -
BitArrayCopyToByteArray Empty 512 126.4684 ns 0.7078 ns 0.6621 ns 126.3118 ns 125.8471 ns 127.6254 ns - - - -
BitArrayCopyToBoolArray Empty 512 5,329.2914 ns 19.7073 ns 17.4700 ns 5,327.6611 ns 5,302.0720 ns 5,365.0412 ns - - - -
After the change (#39173)
BenchmarkDotNet=v0.11.5.1159-nightly, OS=Windows 10.0.18999
Intel Core i7-8700 CPU 3.20GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical cores
.NET Core SDK=5.0.100-alpha1-014885
  [Host]              : .NET Core 5.0.0-alpha1.19507.3 (CoreCLR 5.0.19.50101, CoreFX 5.0.19.50407), X64 RyuJIT
  Job-IJWQXJ          : .NET Core ? (CoreCLR 5.0.19.51001, CoreFX 5.0.19.51501), X64 RyuJIT
  Avx2 Enabled        : .NET Core 5.0.0-alpha1.19507.3 (CoreCLR 5.0.19.50101, CoreFX 5.0.19.50407), X64 RyuJIT
  Intrinsics Disabled : .NET Core 5.0.0-alpha1.19507.3 (CoreCLR 5.0.19.50101, CoreFX 5.0.19.50407), X64 RyuJIT
  Sse2 Enabled        : .NET Core 5.0.0-alpha1.19507.3 (CoreCLR 5.0.19.50101, CoreFX 5.0.19.50407), X64 RyuJIT

Runtime=.NET Core 5.0  
Method Job EnvironmentVariables PowerPlanMode Toolchain IterationTime MaxIterationCount MinIterationCount WarmupCount Size Mean Error StdDev Median Min Max Gen 0 Gen 1 Gen 2 Allocated
BitArrayLengthCtor Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 4 7.4218 ns 0.0563 ns 0.0470 ns 7.4212 ns 7.3398 ns 7.4939 ns 0.0102 - - 64 B
BitArrayLengthValueCtor Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 4 9.6946 ns 0.0344 ns 0.0269 ns 9.6937 ns 9.6607 ns 9.7499 ns 0.0102 - - 64 B
BitArrayBitArrayCtor Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 4 15.5547 ns 0.2703 ns 0.2396 ns 15.4679 ns 15.3323 ns 16.0470 ns 0.0102 - - 64 B
BitArrayBoolArrayCtor Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 4 10.4255 ns 0.1132 ns 0.1059 ns 10.3809 ns 10.3223 ns 10.6975 ns 0.0102 - - 64 B
BitArrayByteArrayCtor Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 4 8.3709 ns 0.0466 ns 0.0364 ns 8.3645 ns 8.3208 ns 8.4343 ns 0.0102 - - 64 B
BitArrayIntArrayCtor Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 4 15.6159 ns 0.0810 ns 0.0718 ns 15.5827 ns 15.5343 ns 15.7711 ns 0.0114 - - 72 B
BitArraySetAll Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 4 4.1571 ns 0.0151 ns 0.0134 ns 4.1640 ns 4.1370 ns 4.1717 ns - - - -
BitArrayNot Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 4 1.8496 ns 0.0055 ns 0.0049 ns 1.8486 ns 1.8437 ns 1.8606 ns - - - -
BitArrayGet Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 4 27.4864 ns 0.0293 ns 0.0244 ns 27.4892 ns 27.4469 ns 27.5233 ns - - - -
BitArrayRightShift Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 4 4.8199 ns 0.0606 ns 0.0537 ns 4.7865 ns 4.7806 ns 4.9648 ns - - - -
BitArrayLeftShift Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 4 4.2966 ns 0.0161 ns 0.0142 ns 4.2922 ns 4.2791 ns 4.3238 ns - - - -
BitArrayAnd Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 4 2.1792 ns 0.2342 ns 0.2697 ns 2.3610 ns 1.8246 ns 2.5191 ns - - - -
BitArrayOr Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 4 2.0675 ns 0.0494 ns 0.0462 ns 2.0495 ns 2.0276 ns 2.1850 ns - - - -
BitArrayXor Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 4 2.0204 ns 0.0258 ns 0.0216 ns 2.0095 ns 2.0049 ns 2.0826 ns - - - -
BitArraySet Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 4 5.0225 ns 0.0390 ns 0.0365 ns 5.0119 ns 4.9698 ns 5.0846 ns - - - -
BitArraySetLengthGrow Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 4 29.2623 ns 0.2529 ns 0.2242 ns 29.1854 ns 28.9475 ns 29.6850 ns 0.0152 - - 96 B
BitArraySetLengthShrink Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 4 10.8137 ns 0.0859 ns 0.0804 ns 10.7749 ns 10.7075 ns 10.9647 ns 0.0102 - - 64 B
BitArrayCopyToIntArray Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 4 13.8202 ns 0.0279 ns 0.0218 ns 13.8153 ns 13.8054 ns 13.8885 ns - - - -
BitArrayCopyToByteArray Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 4 23.7357 ns 0.0573 ns 0.0508 ns 23.7196 ns 23.6777 ns 23.8517 ns - - - -
BitArrayCopyToBoolArray Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 4 77.1020 ns 0.1575 ns 0.1397 ns 77.1209 ns 76.8235 ns 77.3196 ns - - - -
BitArrayLengthCtor Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 7.3099 ns 0.0975 ns 0.0912 ns 7.2738 ns 7.2099 ns 7.5523 ns 0.0102 - - 64 B
BitArrayLengthValueCtor Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 9.8827 ns 0.0282 ns 0.0220 ns 9.8850 ns 9.8490 ns 9.9086 ns 0.0102 - - 64 B
BitArrayBitArrayCtor Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 15.2235 ns 0.2691 ns 0.2517 ns 15.2513 ns 14.7153 ns 15.5595 ns 0.0102 - - 64 B
BitArrayBoolArrayCtor Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 10.2004 ns 0.0791 ns 0.0740 ns 10.1832 ns 10.0928 ns 10.3144 ns 0.0102 - - 64 B
BitArrayByteArrayCtor Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 8.3549 ns 0.0891 ns 0.0790 ns 8.3874 ns 8.2347 ns 8.4402 ns 0.0102 - - 64 B
BitArrayIntArrayCtor Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 15.5978 ns 0.1116 ns 0.1044 ns 15.5557 ns 15.4710 ns 15.7711 ns 0.0115 - - 72 B
BitArraySetAll Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 0.9475 ns 0.0118 ns 0.0110 ns 0.9432 ns 0.9383 ns 0.9779 ns - - - -
BitArrayNot Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 0.4405 ns 0.0049 ns 0.0041 ns 0.4393 ns 0.4361 ns 0.4518 ns - - - -
BitArrayGet Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 28.4851 ns 0.6657 ns 1.5949 ns 27.6574 ns 27.4029 ns 34.5685 ns - - - -
BitArrayRightShift Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 4.8954 ns 0.0212 ns 0.0198 ns 4.8841 ns 4.8755 ns 4.9269 ns - - - -
BitArrayLeftShift Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 4.9040 ns 0.0156 ns 0.0146 ns 4.8956 ns 4.8881 ns 4.9354 ns - - - -
BitArrayAnd Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 1.8396 ns 0.0054 ns 0.0045 ns 1.8412 ns 1.8327 ns 1.8497 ns - - - -
BitArrayOr Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 1.7274 ns 0.0245 ns 0.0204 ns 1.7174 ns 1.7123 ns 1.7819 ns - - - -
BitArrayXor Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 1.3503 ns 0.0244 ns 0.0228 ns 1.3454 ns 1.3252 ns 1.4051 ns - - - -
BitArraySet Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 4.9782 ns 0.0262 ns 0.0232 ns 4.9746 ns 4.9419 ns 5.0093 ns - - - -
BitArraySetLengthGrow Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 30.5402 ns 0.2689 ns 0.2100 ns 30.5450 ns 30.2087 ns 30.8346 ns 0.0153 - - 96 B
BitArraySetLengthShrink Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 11.4297 ns 0.0919 ns 0.0860 ns 11.3863 ns 11.3281 ns 11.5795 ns 0.0102 - - 64 B
BitArrayCopyToIntArray Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 13.8095 ns 0.0572 ns 0.0535 ns 13.8028 ns 13.7011 ns 13.8933 ns - - - -
BitArrayCopyToByteArray Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 23.9636 ns 0.0990 ns 0.0926 ns 23.9109 ns 23.8738 ns 24.2002 ns - - - -
BitArrayCopyToBoolArray Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 75.4524 ns 0.7219 ns 0.6753 ns 75.3676 ns 74.7449 ns 77.1253 ns - - - -
BitArrayLengthCtor Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 7.3483 ns 0.0358 ns 0.0317 ns 7.3447 ns 7.3072 ns 7.4220 ns 0.0102 - - 64 B
BitArrayLengthValueCtor Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 10.0646 ns 0.1493 ns 0.1397 ns 10.0336 ns 9.8559 ns 10.2194 ns 0.0102 - - 64 B
BitArrayBitArrayCtor Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 15.2073 ns 0.0348 ns 0.0291 ns 15.2027 ns 15.1589 ns 15.2763 ns 0.0102 - - 64 B
BitArrayBoolArrayCtor Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 10.4198 ns 0.2169 ns 0.2029 ns 10.4613 ns 10.0791 ns 10.6797 ns 0.0102 - - 64 B
BitArrayByteArrayCtor Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 8.0609 ns 0.0320 ns 0.0284 ns 8.0648 ns 8.0080 ns 8.1103 ns 0.0102 - - 64 B
BitArrayIntArrayCtor Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 15.6964 ns 0.0509 ns 0.0425 ns 15.6829 ns 15.6499 ns 15.7949 ns 0.0115 - - 72 B
BitArraySetAll Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 0.9861 ns 0.0178 ns 0.0166 ns 0.9780 ns 0.9709 ns 1.0137 ns - - - -
BitArrayNot Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 0.4407 ns 0.0018 ns 0.0014 ns 0.4407 ns 0.4374 ns 0.4422 ns - - - -
BitArrayGet Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 27.6457 ns 0.1030 ns 0.0860 ns 27.5973 ns 27.5689 ns 27.8687 ns - - - -
BitArrayRightShift Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 5.0000 ns 0.0842 ns 0.0788 ns 5.0429 ns 4.8760 ns 5.1209 ns - - - -
BitArrayLeftShift Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 4.8922 ns 0.0087 ns 0.0081 ns 4.8932 ns 4.8792 ns 4.9075 ns - - - -
BitArrayAnd Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 1.6206 ns 0.1010 ns 0.0945 ns 1.5772 ns 1.5458 ns 1.7704 ns - - - -
BitArrayOr Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 1.7253 ns 0.0134 ns 0.0125 ns 1.7200 ns 1.7115 ns 1.7445 ns - - - -
BitArrayXor Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 1.3507 ns 0.0281 ns 0.0263 ns 1.3382 ns 1.3259 ns 1.3988 ns - - - -
BitArraySet Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 5.0013 ns 0.0337 ns 0.0315 ns 4.9935 ns 4.9407 ns 5.0482 ns - - - -
BitArraySetLengthGrow Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 29.7138 ns 0.0840 ns 0.0701 ns 29.7281 ns 29.6133 ns 29.8566 ns 0.0153 - - 96 B
BitArraySetLengthShrink Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 10.8960 ns 0.2867 ns 0.3924 ns 11.0673 ns 9.9882 ns 11.1601 ns 0.0102 - - 64 B
BitArrayCopyToIntArray Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 13.8646 ns 0.0941 ns 0.0880 ns 13.8355 ns 13.7626 ns 14.0085 ns - - - -
BitArrayCopyToByteArray Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 22.9139 ns 0.0581 ns 0.0454 ns 22.9058 ns 22.8576 ns 23.0251 ns - - - -
BitArrayCopyToBoolArray Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 74.6450 ns 0.0943 ns 0.0787 ns 74.6231 ns 74.5352 ns 74.8208 ns - - - -
BitArrayLengthCtor Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 7.4025 ns 0.0598 ns 0.0559 ns 7.3933 ns 7.3225 ns 7.4912 ns 0.0102 - - 64 B
BitArrayLengthValueCtor Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 9.8824 ns 0.0247 ns 0.0231 ns 9.8879 ns 9.8372 ns 9.9166 ns 0.0102 - - 64 B
BitArrayBitArrayCtor Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 15.2755 ns 0.3516 ns 0.3610 ns 15.3843 ns 14.7613 ns 15.8013 ns 0.0102 - - 64 B
BitArrayBoolArrayCtor Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 10.0690 ns 0.0389 ns 0.0345 ns 10.0614 ns 10.0157 ns 10.1294 ns 0.0102 - - 64 B
BitArrayByteArrayCtor Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 8.5446 ns 0.2346 ns 0.2304 ns 8.6912 ns 8.2793 ns 8.8170 ns 0.0102 - - 64 B
BitArrayIntArrayCtor Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 15.8948 ns 0.2976 ns 0.2784 ns 16.0255 ns 15.5231 ns 16.2955 ns 0.0115 - - 72 B
BitArraySetAll Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 0.9726 ns 0.0085 ns 0.0080 ns 0.9691 ns 0.9653 ns 0.9927 ns - - - -
BitArrayNot Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 0.4429 ns 0.0048 ns 0.0043 ns 0.4411 ns 0.4385 ns 0.4548 ns - - - -
BitArrayGet Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 26.8231 ns 0.0731 ns 0.0684 ns 26.7968 ns 26.7522 ns 26.9355 ns - - - -
BitArrayRightShift Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 4.8159 ns 0.0315 ns 0.0279 ns 4.8049 ns 4.7922 ns 4.8761 ns - - - -
BitArrayLeftShift Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 4.6074 ns 0.0262 ns 0.0233 ns 4.6001 ns 4.5833 ns 4.6662 ns - - - -
BitArrayAnd Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 1.8353 ns 0.0057 ns 0.0051 ns 1.8336 ns 1.8290 ns 1.8465 ns - - - -
BitArrayOr Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 1.7486 ns 0.0428 ns 0.0357 ns 1.7570 ns 1.7121 ns 1.8185 ns - - - -
BitArrayXor Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 1.3498 ns 0.0138 ns 0.0122 ns 1.3525 ns 1.3357 ns 1.3766 ns - - - -
BitArraySet Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 4.9784 ns 0.0272 ns 0.0254 ns 4.9760 ns 4.9428 ns 5.0384 ns - - - -
BitArraySetLengthGrow Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 29.0446 ns 0.1748 ns 0.1635 ns 28.9705 ns 28.8578 ns 29.3220 ns 0.0153 - - 96 B
BitArraySetLengthShrink Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 11.4681 ns 0.0757 ns 0.0708 ns 11.5062 ns 11.3793 ns 11.5632 ns 0.0102 - - 64 B
BitArrayCopyToIntArray Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 13.4807 ns 0.0617 ns 0.0578 ns 13.4776 ns 13.4076 ns 13.5914 ns - - - -
BitArrayCopyToByteArray Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 22.9927 ns 0.0738 ns 0.0691 ns 23.0050 ns 22.8614 ns 23.1090 ns - - - -
BitArrayCopyToBoolArray Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 4 74.8599 ns 0.1763 ns 0.1472 ns 74.8056 ns 74.7176 ns 75.1977 ns - - - -
BitArrayLengthCtor Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 512 9.9968 ns 0.5700 ns 0.6564 ns 10.4367 ns 9.1606 ns 10.8471 ns 0.0191 - - 120 B
BitArrayLengthValueCtor Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 512 14.4178 ns 0.1411 ns 0.1251 ns 14.3890 ns 14.2913 ns 14.7098 ns 0.0191 - - 120 B
BitArrayBitArrayCtor Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 512 18.7857 ns 0.0683 ns 0.0605 ns 18.7778 ns 18.7117 ns 18.8844 ns 0.0191 - - 120 B
BitArrayBoolArrayCtor Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 512 454.6137 ns 1.0829 ns 0.9600 ns 454.5601 ns 453.3836 ns 456.7735 ns 0.0183 - - 120 B
BitArrayByteArrayCtor Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 512 136.3617 ns 0.5667 ns 0.4425 ns 136.4597 ns 135.4564 ns 136.7963 ns 0.0904 - - 568 B
BitArrayIntArrayCtor Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 512 110.9415 ns 1.8831 ns 1.7615 ns 111.3913 ns 107.0444 ns 112.9747 ns 0.3353 0.0052 - 2104 B
BitArraySetAll Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 512 31.7103 ns 0.0213 ns 0.0166 ns 31.7076 ns 31.6893 ns 31.7491 ns - - - -
BitArrayNot Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 512 9.7991 ns 0.0321 ns 0.0301 ns 9.8012 ns 9.7608 ns 9.8652 ns - - - -
BitArrayGet Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 512 3,394.1376 ns 11.5435 ns 10.7978 ns 3,390.3752 ns 3,382.9191 ns 3,416.3648 ns - - - -
BitArrayRightShift Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 512 212.3677 ns 1.1472 ns 1.0169 ns 212.0964 ns 211.2576 ns 214.1649 ns - - - -
BitArrayLeftShift Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 512 212.4850 ns 0.4002 ns 0.3547 ns 212.3356 ns 212.1922 ns 213.2978 ns - - - -
BitArrayAnd Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 512 12.0256 ns 0.0524 ns 0.0465 ns 12.0251 ns 11.9700 ns 12.0980 ns - - - -
BitArrayOr Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 512 12.0257 ns 0.0734 ns 0.0651 ns 11.9931 ns 11.9643 ns 12.1371 ns - - - -
BitArrayXor Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 512 12.5864 ns 0.1356 ns 0.1269 ns 12.5333 ns 12.4703 ns 12.9005 ns - - - -
BitArraySet Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 512 645.7225 ns 3.9753 ns 3.5240 ns 644.2159 ns 642.5445 ns 653.1308 ns - - - -
BitArraySetLengthGrow Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 512 217.4121 ns 1.1520 ns 0.9620 ns 217.2190 ns 216.3784 ns 219.9782 ns 0.2573 0.0018 - 1616 B
BitArraySetLengthShrink Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 512 140.2248 ns 0.7322 ns 0.6849 ns 140.3247 ns 139.0620 ns 141.4404 ns 0.0900 - - 568 B
BitArrayCopyToIntArray Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 512 26.9366 ns 0.0268 ns 0.0251 ns 26.9416 ns 26.8846 ns 26.9704 ns - - - -
BitArrayCopyToByteArray Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 512 127.1856 ns 0.5689 ns 0.5044 ns 126.9164 ns 126.8144 ns 128.4509 ns - - - -
BitArrayCopyToBoolArray Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 512 5,359.4202 ns 21.2006 ns 19.8310 ns 5,359.4785 ns 5,336.2069 ns 5,408.8362 ns - - - -
BitArrayLengthCtor Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 9.1541 ns 0.1039 ns 0.0972 ns 9.1522 ns 9.0227 ns 9.3686 ns 0.0191 - - 120 B
BitArrayLengthValueCtor Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 13.9476 ns 0.1577 ns 0.1476 ns 13.9000 ns 13.8100 ns 14.2431 ns 0.0191 - - 120 B
BitArrayBitArrayCtor Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 18.9178 ns 0.1421 ns 0.1329 ns 18.9287 ns 18.7263 ns 19.1175 ns 0.0191 - - 120 B
BitArrayBoolArrayCtor Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 454.9172 ns 0.4271 ns 0.3566 ns 454.8004 ns 454.5764 ns 455.8567 ns 0.0191 - - 120 B
BitArrayByteArrayCtor Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 136.6532 ns 0.5687 ns 0.5319 ns 136.6295 ns 135.7039 ns 137.6510 ns 0.0904 0.0002 - 568 B
BitArrayIntArrayCtor Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 111.2712 ns 0.8709 ns 0.7273 ns 111.3610 ns 109.5593 ns 112.0736 ns 0.3353 0.0051 - 2104 B
BitArraySetAll Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 65.3346 ns 0.1596 ns 0.1493 ns 65.2524 ns 65.1843 ns 65.6191 ns - - - -
BitArrayNot Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 64.6961 ns 0.1663 ns 0.1388 ns 64.6412 ns 64.5808 ns 65.0529 ns - - - -
BitArrayGet Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 3,388.1189 ns 3.1507 ns 2.6310 ns 3,387.3257 ns 3,385.5347 ns 3,395.3011 ns - - - -
BitArrayRightShift Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 212.9312 ns 0.5414 ns 0.4799 ns 212.9752 ns 212.3916 ns 214.1319 ns - - - -
BitArrayLeftShift Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 219.7546 ns 0.9055 ns 0.8470 ns 219.4804 ns 218.9408 ns 221.3263 ns - - - -
BitArrayAnd Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 18.2251 ns 0.0258 ns 0.0201 ns 18.2233 ns 18.1975 ns 18.2627 ns - - - -
BitArrayOr Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 19.1280 ns 0.1463 ns 0.1369 ns 19.1145 ns 18.9878 ns 19.4927 ns - - - -
BitArrayXor Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 19.9852 ns 0.4598 ns 0.7426 ns 20.4259 ns 18.7232 ns 20.5546 ns - - - -
BitArraySet Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 645.2412 ns 3.6200 ns 3.3862 ns 645.0084 ns 642.0028 ns 651.8974 ns - - - -
BitArraySetLengthGrow Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 217.3562 ns 0.7869 ns 0.7361 ns 217.1604 ns 216.0507 ns 218.6500 ns 0.2575 0.0024 - 1616 B
BitArraySetLengthShrink Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 138.9359 ns 0.7428 ns 0.6585 ns 138.9000 ns 138.0366 ns 140.5610 ns 0.0904 0.0002 - 568 B
BitArrayCopyToIntArray Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 28.0711 ns 0.5685 ns 0.5318 ns 28.2223 ns 26.7478 ns 28.3986 ns - - - -
BitArrayCopyToByteArray Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 127.1761 ns 0.1126 ns 0.0940 ns 127.1617 ns 127.0659 ns 127.3894 ns - - - -
BitArrayCopyToBoolArray Avx2 Enabled Empty 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 5,345.0466 ns 4.2595 ns 3.5569 ns 5,343.7508 ns 5,342.4477 ns 5,355.4886 ns - - - -
BitArrayLengthCtor Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 9.3955 ns 0.2501 ns 0.2676 ns 9.2373 ns 9.1446 ns 10.0219 ns 0.0191 - - 120 B
BitArrayLengthValueCtor Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 13.8763 ns 0.1150 ns 0.1019 ns 13.8528 ns 13.7500 ns 14.0873 ns 0.0191 - - 120 B
BitArrayBitArrayCtor Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 18.9503 ns 0.1506 ns 0.1409 ns 18.9990 ns 18.6865 ns 19.2077 ns 0.0191 - - 120 B
BitArrayBoolArrayCtor Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 496.4033 ns 7.3089 ns 6.8367 ns 494.5038 ns 487.3446 ns 511.2386 ns 0.0191 - - 120 B
BitArrayByteArrayCtor Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 137.0764 ns 0.9021 ns 0.8439 ns 137.1736 ns 135.4038 ns 138.4900 ns 0.0904 0.0002 - 568 B
BitArrayIntArrayCtor Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 112.5002 ns 2.2291 ns 3.0513 ns 111.9406 ns 105.5152 ns 116.8976 ns 0.3353 0.0051 - 2104 B
BitArraySetAll Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 65.5122 ns 0.4369 ns 0.3648 ns 65.4054 ns 65.2002 ns 66.5300 ns - - - -
BitArrayNot Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 64.7762 ns 0.3157 ns 0.2636 ns 64.6371 ns 64.5782 ns 65.4513 ns - - - -
BitArrayGet Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 3,396.3852 ns 14.5630 ns 12.1608 ns 3,388.8237 ns 3,385.7159 ns 3,424.2374 ns - - - -
BitArrayRightShift Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 212.2968 ns 0.7518 ns 0.6665 ns 212.2591 ns 211.5681 ns 213.1985 ns - - - -
BitArrayLeftShift Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 212.3714 ns 1.1731 ns 1.0974 ns 211.7890 ns 211.5268 ns 214.2718 ns - - - -
BitArrayAnd Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 19.7521 ns 0.2253 ns 0.2107 ns 19.8579 ns 19.4885 ns 20.0444 ns - - - -
BitArrayOr Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 18.9417 ns 0.4274 ns 0.3998 ns 19.1332 ns 18.3462 ns 19.4607 ns - - - -
BitArrayXor Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 18.0451 ns 0.1216 ns 0.1137 ns 17.9949 ns 17.9253 ns 18.2285 ns - - - -
BitArraySet Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 643.9456 ns 1.7991 ns 1.5948 ns 644.2816 ns 641.9179 ns 645.7132 ns - - - -
BitArraySetLengthGrow Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 217.9345 ns 1.2306 ns 1.1511 ns 217.5739 ns 216.0354 ns 220.0416 ns 0.2575 0.0024 - 1616 B
BitArraySetLengthShrink Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 140.7960 ns 0.9389 ns 0.8782 ns 140.4963 ns 139.8429 ns 142.9389 ns 0.0904 0.0002 - 568 B
BitArrayCopyToIntArray Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 26.7372 ns 0.1084 ns 0.1014 ns 26.6744 ns 26.6303 ns 26.9460 ns - - - -
BitArrayCopyToByteArray Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 126.2632 ns 0.4200 ns 0.3723 ns 126.1172 ns 125.9381 ns 127.0726 ns - - - -
BitArrayCopyToBoolArray Intrinsics Disabled EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 5,365.8707 ns 39.7906 ns 35.2733 ns 5,346.3844 ns 5,342.7094 ns 5,454.9576 ns - - - -
BitArrayLengthCtor Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 9.3715 ns 0.1715 ns 0.1521 ns 9.3172 ns 9.2053 ns 9.7884 ns 0.0191 - - 120 B
BitArrayLengthValueCtor Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 13.9647 ns 0.1088 ns 0.1018 ns 13.9907 ns 13.7920 ns 14.1352 ns 0.0191 - - 120 B
BitArrayBitArrayCtor Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 18.4481 ns 0.3575 ns 0.3344 ns 18.2405 ns 18.1514 ns 19.0373 ns 0.0191 - - 120 B
BitArrayBoolArrayCtor Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 493.0077 ns 9.6971 ns 9.5238 ns 495.4619 ns 470.5894 ns 509.3600 ns 0.0191 - - 120 B
BitArrayByteArrayCtor Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 136.0812 ns 0.5104 ns 0.4525 ns 136.1109 ns 135.3673 ns 136.9311 ns 0.0904 0.0002 - 568 B
BitArrayIntArrayCtor Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 111.7877 ns 2.2552 ns 2.4131 ns 112.6034 ns 107.2240 ns 115.4171 ns 0.3353 0.0051 - 2104 B
BitArraySetAll Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 55.4253 ns 0.1260 ns 0.1178 ns 55.3828 ns 55.2720 ns 55.6869 ns - - - -
BitArrayNot Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 64.7363 ns 0.2099 ns 0.1861 ns 64.6479 ns 64.5820 ns 65.1491 ns - - - -
BitArrayGet Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 3,394.8312 ns 16.6854 ns 13.9330 ns 3,388.4186 ns 3,385.0620 ns 3,434.4692 ns - - - -
BitArrayRightShift Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 211.3183 ns 0.1796 ns 0.1592 ns 211.2863 ns 211.1312 ns 211.6261 ns - - - -
BitArrayLeftShift Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 212.2902 ns 0.9082 ns 0.8051 ns 211.8270 ns 211.6538 ns 213.8922 ns - - - -
BitArrayAnd Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 18.5395 ns 0.0587 ns 0.0550 ns 18.5151 ns 18.4980 ns 18.6412 ns - - - -
BitArrayOr Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 18.2501 ns 0.0929 ns 0.0869 ns 18.2285 ns 18.1175 ns 18.4415 ns - - - -
BitArrayXor Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 17.8867 ns 0.0560 ns 0.0524 ns 17.8969 ns 17.8114 ns 17.9820 ns - - - -
BitArraySet Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 643.9036 ns 2.8550 ns 2.6705 ns 642.3194 ns 641.6699 ns 649.6573 ns - - - -
BitArraySetLengthGrow Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 217.4114 ns 1.2598 ns 1.1784 ns 217.0365 ns 215.8968 ns 219.4177 ns 0.2575 0.0024 - 1616 B
BitArraySetLengthShrink Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 138.9798 ns 0.4504 ns 0.4213 ns 138.9619 ns 138.1627 ns 139.8502 ns 0.0904 0.0002 - 568 B
BitArrayCopyToIntArray Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 29.1434 ns 0.1319 ns 0.1101 ns 29.0840 ns 29.0394 ns 29.3870 ns - - - -
BitArrayCopyToByteArray Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 127.1849 ns 0.0871 ns 0.0727 ns 127.1620 ns 127.0988 ns 127.3766 ns - - - -
BitArrayCopyToBoolArray Sse2 Enabled EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Default Default Default Default Default 512 5,345.2384 ns 5.2840 ns 4.1254 ns 5,344.8711 ns 5,339.2944 ns 5,353.2501 ns - - - -

(Why are the displayed columns/jobs run differ? I have no idea why; did dotnet run -c Release -f netcoreapp5.0 --filter System.Collections.Tests.Perf_BitArray* for the first one, then did dotnet run -c Release -f netcoreapp5.0 --coreRun "C:\Users\gotos\source\repos\corefx\artifacts\bin\runtime\netcoreapp-Windows_NT-Release-x64\CoreRun.exe" --filter System.Collections.Tests.Perf_BitArray* for the second one, without no source changes)

@Gnbrkm41
Copy link
Contributor

Gnbrkm41 commented Oct 15, 2019

Actually, I'm not sure if the one with the custom corefx ran properly?

  Job-IJWQXJ          : .NET Core ? (CoreCLR 5.0.19.51001, CoreFX 5.0.19.51501), X64 RyuJIT
  Avx2 Enabled        : .NET Core 5.0.0-alpha1.19507.3 (CoreCLR 5.0.19.50101, CoreFX 5.0.19.50407), X64 RyuJIT
  Intrinsics Disabled : .NET Core 5.0.0-alpha1.19507.3 (CoreCLR 5.0.19.50101, CoreFX 5.0.19.50407), X64 RyuJIT
  Sse2 Enabled        : .NET Core 5.0.0-alpha1.19507.3 (CoreCLR 5.0.19.50101, CoreFX 5.0.19.50407), X64 RyuJIT

Only the job on the top have seems it ran with the custom corefx, and the rest seems to have run with the SDK one.

cc @adamsitnik can you spot anything wrong here? I've basically added this class deriving from ManualConfig which sets environment variables then added it to the Perf_BitArray benchmark class:

public class ConfigWithNoISA_Sse2_Avx2 : ManualConfig
{
    public ConfigWithNoISA_Sse2_Avx2()
    {
        Add(Job.Default.With(CoreRuntime.Core50)
            .WithEnvironmentVariable(IsaConfigurationKnobs.HWIntrinsic, "0")
            .WithId("Intrinsics Disabled"));

        Add(Job.Default.With(CoreRuntime.Core50)
            .WithEnvironmentVariable(IsaConfigurationKnobs.X86.Avx2, "0")
            .WithId("Sse2 Enabled"));

        Add(Job.Default.With(CoreRuntime.Core50)
            .WithId("Avx2 Enabled"));
    }
}
namespace System.Collections.Tests
{
    [Config(typeof(ConfigWithNoISA_Sse2_Avx2))]
    [BenchmarkCategory(Categories.CoreFX, Categories.Collections)]
    public class Perf_BitArray
    {
        // ...

Commands used are:
Before: dotnet run -c Release -f netcoreapp5.0 --filter System.Collections.Tests.Perf_BitArray*
After: dotnet run -c Release -f netcoreapp5.0 --coreRun "C:\Users\gotos\source\repos\corefx\artifacts\bin\runtime\netcoreapp-Windows_NT-Release-x64\CoreRun.exe" --filter System.Collections.Tests.Perf_BitArray*

@adamsitnik
Copy link
Member Author

can you spot anything wrong here?

This is a BenchmarkDotNet limitation|design issue: if you are using a custom ManualConfig when you define multiple jobs, providing --corerun does not extend them with CoreRunToolchain.

Assuming that you have created a copy of the Core_Root folder before applying any changes and it's stored in "C:\Projects\coreclr\bin\tests\Windows_NT.x64.Release\before\Core_Root\CoreRun.exe" and after applying the changes and rebuilding the product you have stored the new version in "C:\Projects\coreclr\bin\tests\Windows_NT.x64.Release\after\Core_Root\CoreRun.exe" the config for comparing before vs after should be:

public class ConfigWithNoISA_Sse2_Avx2 : ManualConfig
{
    public ConfigWithNoISA_Sse2_Avx2()
    {
        var before = new CoreRunToolchain(
            new FileInfo(@"C:\Projects\coreclr\bin\tests\Windows_NT.x64.Release\before\Core_Root\CoreRun.exe"), 
            targetFrameworkMoniker: "netcoreapp5.0", displayName: "before");

        var after = new CoreRunToolchain(
            new FileInfo(@"C:\Projects\coreclr\bin\tests\Windows_NT.x64.Release\after\Core_Root\CoreRun.exe"), 
            targetFrameworkMoniker: "netcoreapp5.0", displayName: "after");
            
        Add(Job.Default
            .With(before)
            .WithId("before")
            .AsBaseline());
    
        Add(Job.Default
            .With(after)
            .WithEnvironmentVariable(IsaConfigurationKnobs.HWIntrinsic, "0")
            .WithId("Intrinsics Disabled"));

        Add(Job.Default
            .With(after)
            .WithEnvironmentVariable(IsaConfigurationKnobs.X86.Avx2, "0")
            .WithId("Sse2 Enabled"));

        Add(Job.Default
            .With(after)
            .WithId("Avx2 Enabled"));
    }
}

@Gnbrkm41
Copy link
Contributor

Gnbrkm41 commented Oct 15, 2019

Here's the result:

Old wrong benchmark - see below
Benchmarks
BenchmarkDotNet=v0.11.5.1159-nightly, OS=Windows 10.0.18999
Intel Core i7-8700 CPU 3.20GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical cores
.NET Core SDK=5.0.100-alpha1-014885
  [Host]     : .NET Core 5.0.0-alpha1.19507.3 (CoreCLR 5.0.19.50101, CoreFX 5.0.19.50407), X64 RyuJIT
  Job-DITMAU : .NET Core ? (CoreCLR 5.0.19.51202, CoreFX 5.0.19.51501), X64 RyuJIT
  Job-XXAQCY : .NET Core ? (CoreCLR 5.0.19.51202, CoreFX 5.0.19.51501), X64 RyuJIT
  Job-WMTZFA : .NET Core ? (CoreCLR 5.0.19.51202, CoreFX 5.0.19.51501), X64 RyuJIT
  Job-JIJWRS : .NET Core ? (CoreCLR 5.0.19.51202, CoreFX 5.0.19.51501), X64 RyuJIT
  Job-KOEHHM : .NET Core ? (CoreCLR 5.0.19.51202, CoreFX 5.0.19.51501), X64 RyuJIT

PowerPlanMode=00000000-0000-0000-0000-000000000000  IterationTime=250.0000 ms  MaxIterationCount=20  
MinIterationCount=15  WarmupCount=1  
Method EnvironmentVariables Toolchain Size Mean Error StdDev Median Min Max Gen 0 Gen 1 Gen 2 Allocated
BitArrayLengthCtor EnableAVX2=0 After 4 7.458 ns 0.2316 ns 0.2379 ns 7.435 ns 7.212 ns 8.116 ns 0.0102 - - 64 B
BitArrayLengthValueCtor EnableAVX2=0 After 4 9.905 ns 0.1611 ns 0.1507 ns 9.867 ns 9.706 ns 10.176 ns 0.0102 - - 64 B
BitArrayBitArrayCtor EnableAVX2=0 After 4 14.888 ns 0.2334 ns 0.2069 ns 14.818 ns 14.646 ns 15.223 ns 0.0102 - - 64 B
BitArrayBoolArrayCtor EnableAVX2=0 After 4 9.758 ns 0.1754 ns 0.1640 ns 9.706 ns 9.600 ns 10.185 ns 0.0102 - - 64 B
BitArrayByteArrayCtor EnableAVX2=0 After 4 8.018 ns 0.2344 ns 0.2192 ns 7.941 ns 7.833 ns 8.578 ns 0.0102 - - 64 B
BitArrayIntArrayCtor EnableAVX2=0 After 4 15.675 ns 0.3305 ns 0.3092 ns 15.512 ns 15.428 ns 16.287 ns 0.0114 - - 72 B
BitArraySetAll EnableAVX2=0 After 4 4.159 ns 0.0375 ns 0.0313 ns 4.144 ns 4.140 ns 4.242 ns - - - -
BitArrayNot EnableAVX2=0 After 4 1.308 ns 0.0128 ns 0.0106 ns 1.304 ns 1.297 ns 1.333 ns - - - -
BitArrayGet EnableAVX2=0 After 4 26.383 ns 0.0343 ns 0.0286 ns 26.369 ns 26.364 ns 26.465 ns - - - -
BitArrayRightShift EnableAVX2=0 After 4 4.861 ns 0.0720 ns 0.0674 ns 4.823 ns 4.776 ns 4.968 ns - - - -
BitArrayLeftShift EnableAVX2=0 After 4 4.328 ns 0.0482 ns 0.0376 ns 4.319 ns 4.288 ns 4.404 ns - - - -
BitArrayAnd EnableAVX2=0 After 4 1.570 ns 0.0128 ns 0.0114 ns 1.566 ns 1.559 ns 1.598 ns - - - -
BitArrayOr EnableAVX2=0 After 4 1.311 ns 0.0166 ns 0.0139 ns 1.306 ns 1.298 ns 1.344 ns - - - -
BitArrayXor EnableAVX2=0 After 4 1.544 ns 0.0224 ns 0.0198 ns 1.540 ns 1.522 ns 1.583 ns - - - -
BitArraySet EnableAVX2=0 After 4 4.997 ns 0.0251 ns 0.0210 ns 4.992 ns 4.977 ns 5.049 ns - - - -
BitArraySetLengthGrow EnableAVX2=0 After 4 28.918 ns 0.2123 ns 0.1882 ns 28.869 ns 28.695 ns 29.331 ns 0.0153 - - 96 B
BitArraySetLengthShrink EnableAVX2=0 After 4 10.308 ns 0.0375 ns 0.0292 ns 10.311 ns 10.265 ns 10.356 ns 0.0102 - - 64 B
BitArrayCopyToIntArray EnableAVX2=0 After 4 14.127 ns 0.0379 ns 0.0355 ns 14.117 ns 14.080 ns 14.199 ns - - - -
BitArrayCopyToByteArray EnableAVX2=0 After 4 23.252 ns 0.0365 ns 0.0305 ns 23.247 ns 23.181 ns 23.307 ns - - - -
BitArrayCopyToBoolArray EnableAVX2=0 After 4 75.929 ns 0.0862 ns 0.0720 ns 75.926 ns 75.800 ns 76.100 ns - - - -
BitArrayLengthCtor EnableHWIntrinsic=0 After 4 8.476 ns 0.1563 ns 0.1385 ns 8.500 ns 8.015 ns 8.579 ns 0.0102 - - 64 B
BitArrayLengthValueCtor EnableHWIntrinsic=0 After 4 9.655 ns 0.0663 ns 0.0554 ns 9.629 ns 9.596 ns 9.753 ns 0.0102 - - 64 B
BitArrayBitArrayCtor EnableHWIntrinsic=0 After 4 14.863 ns 0.1787 ns 0.1584 ns 14.809 ns 14.708 ns 15.271 ns 0.0102 - - 64 B
BitArrayBoolArrayCtor EnableHWIntrinsic=0 After 4 9.676 ns 0.0810 ns 0.0677 ns 9.680 ns 9.576 ns 9.845 ns 0.0102 - - 64 B
BitArrayByteArrayCtor EnableHWIntrinsic=0 After 4 7.834 ns 0.0624 ns 0.0521 ns 7.820 ns 7.769 ns 7.956 ns 0.0102 - - 64 B
BitArrayIntArrayCtor EnableHWIntrinsic=0 After 4 15.491 ns 0.1035 ns 0.0918 ns 15.461 ns 15.388 ns 15.725 ns 0.0114 - - 72 B
BitArraySetAll EnableHWIntrinsic=0 After 4 3.923 ns 0.0042 ns 0.0035 ns 3.924 ns 3.918 ns 3.928 ns - - - -
BitArrayNot EnableHWIntrinsic=0 After 4 1.299 ns 0.0088 ns 0.0078 ns 1.299 ns 1.287 ns 1.312 ns - - - -
BitArrayGet EnableHWIntrinsic=0 After 4 27.947 ns 0.2257 ns 0.2000 ns 27.856 ns 27.797 ns 28.448 ns - - - -
BitArrayRightShift EnableHWIntrinsic=0 After 4 4.801 ns 0.0200 ns 0.0177 ns 4.793 ns 4.783 ns 4.829 ns - - - -
BitArrayLeftShift EnableHWIntrinsic=0 After 4 4.296 ns 0.0127 ns 0.0112 ns 4.295 ns 4.272 ns 4.318 ns - - - -
BitArrayAnd EnableHWIntrinsic=0 After 4 1.594 ns 0.0366 ns 0.0324 ns 1.588 ns 1.559 ns 1.667 ns - - - -
BitArrayOr EnableHWIntrinsic=0 After 4 1.376 ns 0.0594 ns 0.0556 ns 1.353 ns 1.304 ns 1.479 ns - - - -
BitArrayXor EnableHWIntrinsic=0 After 4 1.613 ns 0.1057 ns 0.0989 ns 1.575 ns 1.519 ns 1.884 ns - - - -
BitArraySet EnableHWIntrinsic=0 After 4 5.081 ns 0.1168 ns 0.1036 ns 5.066 ns 4.965 ns 5.338 ns - - - -
BitArraySetLengthGrow EnableHWIntrinsic=0 After 4 28.862 ns 0.1890 ns 0.1579 ns 28.865 ns 28.648 ns 29.181 ns 0.0152 - - 96 B
BitArraySetLengthShrink EnableHWIntrinsic=0 After 4 10.492 ns 0.1613 ns 0.1509 ns 10.432 ns 10.338 ns 10.772 ns 0.0102 - - 64 B
BitArrayCopyToIntArray EnableHWIntrinsic=0 After 4 14.363 ns 0.2343 ns 0.2192 ns 14.374 ns 14.101 ns 14.849 ns - - - -
BitArrayCopyToByteArray EnableHWIntrinsic=0 After 4 23.428 ns 0.2982 ns 0.2790 ns 23.286 ns 23.155 ns 23.949 ns - - - -
BitArrayCopyToBoolArray EnableHWIntrinsic=0 After 4 76.061 ns 0.2235 ns 0.1745 ns 75.964 ns 75.877 ns 76.333 ns - - - -
BitArrayLengthCtor EnableHWIntrinsic=0 Before 4 7.211 ns 0.1197 ns 0.1119 ns 7.152 ns 7.098 ns 7.421 ns 0.0102 - - 64 B
BitArrayLengthValueCtor EnableHWIntrinsic=0 Before 4 9.660 ns 0.0460 ns 0.0384 ns 9.652 ns 9.595 ns 9.737 ns 0.0102 - - 64 B
BitArrayBitArrayCtor EnableHWIntrinsic=0 Before 4 14.810 ns 0.1326 ns 0.1240 ns 14.758 ns 14.680 ns 15.127 ns 0.0102 - - 64 B
BitArrayBoolArrayCtor EnableHWIntrinsic=0 Before 4 9.642 ns 0.0275 ns 0.0215 ns 9.638 ns 9.610 ns 9.676 ns 0.0102 - - 64 B
BitArrayByteArrayCtor EnableHWIntrinsic=0 Before 4 7.953 ns 0.0569 ns 0.0505 ns 7.971 ns 7.857 ns 8.009 ns 0.0102 - - 64 B
BitArrayIntArrayCtor EnableHWIntrinsic=0 Before 4 15.826 ns 0.4569 ns 0.5262 ns 15.682 ns 15.327 ns 17.256 ns 0.0114 - - 72 B
BitArraySetAll EnableHWIntrinsic=0 Before 4 4.152 ns 0.0187 ns 0.0165 ns 4.142 ns 4.139 ns 4.184 ns - - - -
BitArrayNot EnableHWIntrinsic=0 Before 4 1.303 ns 0.0106 ns 0.0089 ns 1.303 ns 1.292 ns 1.323 ns - - - -
BitArrayGet EnableHWIntrinsic=0 Before 4 27.531 ns 0.1248 ns 0.1042 ns 27.488 ns 27.426 ns 27.785 ns - - - -
BitArrayRightShift EnableHWIntrinsic=0 Before 4 4.837 ns 0.0907 ns 0.0757 ns 4.808 ns 4.786 ns 5.023 ns - - - -
BitArrayLeftShift EnableHWIntrinsic=0 Before 4 4.384 ns 0.1605 ns 0.1502 ns 4.311 ns 4.288 ns 4.783 ns - - - -
BitArrayAnd EnableHWIntrinsic=0 Before 4 1.604 ns 0.0830 ns 0.0736 ns 1.576 ns 1.558 ns 1.814 ns - - - -
BitArrayOr EnableHWIntrinsic=0 Before 4 1.308 ns 0.0047 ns 0.0037 ns 1.309 ns 1.302 ns 1.314 ns - - - -
BitArrayXor EnableHWIntrinsic=0 Before 4 1.529 ns 0.0052 ns 0.0041 ns 1.528 ns 1.523 ns 1.535 ns - - - -
BitArraySet EnableHWIntrinsic=0 Before 4 4.992 ns 0.0253 ns 0.0224 ns 4.990 ns 4.960 ns 5.040 ns - - - -
BitArraySetLengthGrow EnableHWIntrinsic=0 Before 4 28.827 ns 0.1268 ns 0.1124 ns 28.806 ns 28.645 ns 29.022 ns 0.0152 - - 96 B
BitArraySetLengthShrink EnableHWIntrinsic=0 Before 4 10.336 ns 0.0768 ns 0.0718 ns 10.314 ns 10.243 ns 10.456 ns 0.0102 - - 64 B
BitArrayCopyToIntArray EnableHWIntrinsic=0 Before 4 14.155 ns 0.0265 ns 0.0221 ns 14.159 ns 14.122 ns 14.199 ns - - - -
BitArrayCopyToByteArray EnableHWIntrinsic=0 Before 4 23.290 ns 0.0642 ns 0.0501 ns 23.269 ns 23.247 ns 23.413 ns - - - -
BitArrayCopyToBoolArray EnableHWIntrinsic=0 Before 4 76.689 ns 0.2832 ns 0.2365 ns 76.759 ns 76.218 ns 77.152 ns - - - -
BitArrayLengthCtor Empty After 4 7.184 ns 0.0591 ns 0.0494 ns 7.162 ns 7.130 ns 7.315 ns 0.0102 - - 64 B
BitArrayLengthValueCtor Empty After 4 9.786 ns 0.1044 ns 0.0925 ns 9.779 ns 9.638 ns 9.980 ns 0.0102 - - 64 B
BitArrayBitArrayCtor Empty After 4 14.950 ns 0.0782 ns 0.0731 ns 14.951 ns 14.786 ns 15.058 ns 0.0102 - - 64 B
BitArrayBoolArrayCtor Empty After 4 9.678 ns 0.0710 ns 0.0664 ns 9.664 ns 9.613 ns 9.805 ns 0.0102 - - 64 B
BitArrayByteArrayCtor Empty After 4 7.925 ns 0.0501 ns 0.0419 ns 7.914 ns 7.875 ns 7.991 ns 0.0102 - - 64 B
BitArrayIntArrayCtor Empty After 4 15.336 ns 0.0796 ns 0.0744 ns 15.307 ns 15.250 ns 15.505 ns 0.0115 - - 72 B
BitArraySetAll Empty After 4 4.147 ns 0.0114 ns 0.0107 ns 4.141 ns 4.138 ns 4.171 ns - - - -
BitArrayNot Empty After 4 1.306 ns 0.0127 ns 0.0106 ns 1.302 ns 1.293 ns 1.336 ns - - - -
BitArrayGet Empty After 4 27.822 ns 0.0498 ns 0.0441 ns 27.809 ns 27.779 ns 27.934 ns - - - -
BitArrayRightShift Empty After 4 4.787 ns 0.0073 ns 0.0057 ns 4.785 ns 4.780 ns 4.799 ns - - - -
BitArrayLeftShift Empty After 4 4.314 ns 0.0214 ns 0.0190 ns 4.314 ns 4.289 ns 4.351 ns - - - -
BitArrayAnd Empty After 4 1.561 ns 0.0060 ns 0.0050 ns 1.560 ns 1.552 ns 1.570 ns - - - -
BitArrayOr Empty After 4 1.584 ns 0.2668 ns 0.2966 ns 1.688 ns 1.306 ns 2.434 ns - - - -
BitArrayXor Empty After 4 1.523 ns 0.0086 ns 0.0072 ns 1.523 ns 1.515 ns 1.542 ns - - - -
BitArraySet Empty After 4 4.982 ns 0.0121 ns 0.0101 ns 4.983 ns 4.964 ns 4.997 ns - - - -
BitArraySetLengthGrow Empty After 4 28.946 ns 0.1911 ns 0.1595 ns 28.898 ns 28.749 ns 29.306 ns 0.0152 - - 96 B
BitArraySetLengthShrink Empty After 4 10.293 ns 0.0575 ns 0.0481 ns 10.284 ns 10.209 ns 10.369 ns 0.0102 - - 64 B
BitArrayCopyToIntArray Empty After 4 14.145 ns 0.0284 ns 0.0252 ns 14.139 ns 14.114 ns 14.203 ns - - - -
BitArrayCopyToByteArray Empty After 4 23.276 ns 0.0468 ns 0.0438 ns 23.257 ns 23.224 ns 23.349 ns - - - -
BitArrayCopyToBoolArray Empty After 4 75.985 ns 0.2870 ns 0.2397 ns 75.890 ns 75.818 ns 76.690 ns - - - -
BitArrayLengthCtor Empty Before 4 7.276 ns 0.1458 ns 0.1364 ns 7.229 ns 7.105 ns 7.528 ns 0.0102 - - 64 B
BitArrayLengthValueCtor Empty Before 4 10.865 ns 0.2753 ns 0.2440 ns 10.916 ns 10.294 ns 11.104 ns 0.0102 - - 64 B
BitArrayBitArrayCtor Empty Before 4 14.832 ns 0.0678 ns 0.0601 ns 14.816 ns 14.724 ns 14.914 ns 0.0102 - - 64 B
BitArrayBoolArrayCtor Empty Before 4 9.804 ns 0.1605 ns 0.1501 ns 9.758 ns 9.648 ns 10.114 ns 0.0102 - - 64 B
BitArrayByteArrayCtor Empty Before 4 8.084 ns 0.2403 ns 0.2248 ns 7.997 ns 7.869 ns 8.654 ns 0.0102 - - 64 B
BitArrayIntArrayCtor Empty Before 4 15.650 ns 0.0459 ns 0.0383 ns 15.644 ns 15.600 ns 15.747 ns 0.0115 - - 72 B
BitArraySetAll Empty Before 4 4.147 ns 0.0099 ns 0.0088 ns 4.143 ns 4.140 ns 4.163 ns - - - -
BitArrayNot Empty Before 4 1.301 ns 0.0090 ns 0.0080 ns 1.299 ns 1.292 ns 1.318 ns - - - -
BitArrayGet Empty Before 4 27.556 ns 0.1323 ns 0.1237 ns 27.529 ns 27.431 ns 27.858 ns - - - -
BitArrayRightShift Empty Before 4 4.805 ns 0.0314 ns 0.0278 ns 4.792 ns 4.786 ns 4.883 ns - - - -
BitArrayLeftShift Empty Before 4 4.488 ns 0.2118 ns 0.2175 ns 4.413 ns 4.297 ns 5.025 ns - - - -
BitArrayAnd Empty Before 4 1.846 ns 0.3260 ns 0.3488 ns 1.784 ns 1.409 ns 2.738 ns - - - -
BitArrayOr Empty Before 4 1.352 ns 0.0677 ns 0.0633 ns 1.316 ns 1.308 ns 1.499 ns - - - -
BitArrayXor Empty Before 4 1.582 ns 0.0782 ns 0.0693 ns 1.567 ns 1.494 ns 1.707 ns - - - -
BitArraySet Empty Before 4 5.057 ns 0.0881 ns 0.0824 ns 5.027 ns 4.964 ns 5.194 ns - - - -
BitArraySetLengthGrow Empty Before 4 30.076 ns 0.6585 ns 0.6762 ns 29.820 ns 29.428 ns 31.639 ns 0.0153 - - 96 B
BitArraySetLengthShrink Empty Before 4 10.881 ns 0.3421 ns 0.3940 ns 10.757 ns 10.465 ns 11.602 ns 0.0102 - - 64 B
BitArrayCopyToIntArray Empty Before 4 14.210 ns 0.0724 ns 0.0565 ns 14.216 ns 14.125 ns 14.313 ns - - - -
BitArrayCopyToByteArray Empty Before 4 23.798 ns 0.5242 ns 0.5826 ns 23.445 ns 23.316 ns 25.148 ns - - - -
BitArrayCopyToBoolArray Empty Before 4 77.984 ns 1.5707 ns 1.5426 ns 77.760 ns 75.972 ns 80.907 ns - - - -
BitArrayLengthCtor EnableAVX2=0 After 512 9.527 ns 0.2634 ns 0.2464 ns 9.453 ns 9.234 ns 9.968 ns 0.0191 - - 120 B
BitArrayLengthValueCtor EnableAVX2=0 After 512 14.271 ns 0.3381 ns 0.3163 ns 14.297 ns 13.731 ns 14.783 ns 0.0191 - - 120 B
BitArrayBitArrayCtor EnableAVX2=0 After 512 19.268 ns 0.4564 ns 0.4883 ns 19.144 ns 18.696 ns 20.653 ns 0.0191 - - 120 B
BitArrayBoolArrayCtor EnableAVX2=0 After 512 461.665 ns 8.1737 ns 7.6457 ns 457.624 ns 455.375 ns 479.196 ns 0.0185 - - 120 B
BitArrayByteArrayCtor EnableAVX2=0 After 512 136.415 ns 1.1871 ns 1.0523 ns 136.190 ns 134.746 ns 139.064 ns 0.0901 - - 568 B
BitArrayIntArrayCtor EnableAVX2=0 After 512 114.844 ns 0.7392 ns 0.6914 ns 114.878 ns 113.195 ns 115.899 ns 0.3351 0.0049 - 2104 B
BitArraySetAll EnableAVX2=0 After 512 31.752 ns 0.0860 ns 0.0762 ns 31.716 ns 31.685 ns 31.933 ns - - - -
BitArrayNot EnableAVX2=0 After 512 8.883 ns 0.0289 ns 0.0270 ns 8.872 ns 8.857 ns 8.945 ns - - - -
BitArrayGet EnableAVX2=0 After 512 3,390.384 ns 9.1649 ns 7.1554 ns 3,386.928 ns 3,383.612 ns 3,404.801 ns - - - -
BitArrayRightShift EnableAVX2=0 After 512 212.340 ns 0.1210 ns 0.0944 ns 212.384 ns 212.147 ns 212.463 ns - - - -
BitArrayLeftShift EnableAVX2=0 After 512 212.419 ns 0.4196 ns 0.3720 ns 212.248 ns 212.091 ns 213.167 ns - - - -
BitArrayAnd EnableAVX2=0 After 512 11.515 ns 0.0249 ns 0.0208 ns 11.508 ns 11.495 ns 11.564 ns - - - -
BitArrayOr EnableAVX2=0 After 512 11.518 ns 0.0353 ns 0.0295 ns 11.506 ns 11.495 ns 11.593 ns - - - -
BitArrayXor EnableAVX2=0 After 512 11.881 ns 0.0130 ns 0.0116 ns 11.881 ns 11.865 ns 11.900 ns - - - -
BitArraySet EnableAVX2=0 After 512 643.320 ns 1.4749 ns 1.3075 ns 642.862 ns 642.143 ns 646.235 ns - - - -
BitArraySetLengthGrow EnableAVX2=0 After 512 216.922 ns 1.3751 ns 1.1483 ns 217.043 ns 215.513 ns 219.127 ns 0.2568 0.0018 - 1616 B
BitArraySetLengthShrink EnableAVX2=0 After 512 140.371 ns 0.8124 ns 0.7201 ns 140.286 ns 139.520 ns 142.076 ns 0.0903 - - 568 B
BitArrayCopyToIntArray EnableAVX2=0 After 512 26.903 ns 0.1089 ns 0.0850 ns 26.856 ns 26.836 ns 27.069 ns - - - -
BitArrayCopyToByteArray EnableAVX2=0 After 512 127.129 ns 0.8969 ns 0.7490 ns 126.975 ns 126.560 ns 129.262 ns - - - -
BitArrayCopyToBoolArray EnableAVX2=0 After 512 5,352.540 ns 10.9994 ns 9.1850 ns 5,349.111 ns 5,341.925 ns 5,370.193 ns - - - -
BitArrayLengthCtor EnableHWIntrinsic=0 After 512 9.104 ns 0.1451 ns 0.1287 ns 9.078 ns 8.938 ns 9.415 ns 0.0191 - - 120 B
BitArrayLengthValueCtor EnableHWIntrinsic=0 After 512 13.584 ns 0.0834 ns 0.0696 ns 13.579 ns 13.492 ns 13.705 ns 0.0191 - - 120 B
BitArrayBitArrayCtor EnableHWIntrinsic=0 After 512 18.681 ns 0.1023 ns 0.0854 ns 18.684 ns 18.489 ns 18.787 ns 0.0191 - - 120 B
BitArrayBoolArrayCtor EnableHWIntrinsic=0 After 512 453.985 ns 1.9568 ns 1.6340 ns 453.665 ns 451.353 ns 456.590 ns 0.0183 - - 120 B
BitArrayByteArrayCtor EnableHWIntrinsic=0 After 512 135.993 ns 0.5113 ns 0.4270 ns 136.051 ns 135.009 ns 136.546 ns 0.0905 - - 568 B
BitArrayIntArrayCtor EnableHWIntrinsic=0 After 512 111.172 ns 2.3231 ns 2.0593 ns 111.105 ns 107.045 ns 115.498 ns 0.3352 0.0050 - 2104 B
BitArraySetAll EnableHWIntrinsic=0 After 512 31.778 ns 0.1243 ns 0.1038 ns 31.746 ns 31.656 ns 32.027 ns - - - -
BitArrayNot EnableHWIntrinsic=0 After 512 8.844 ns 0.0067 ns 0.0059 ns 8.847 ns 8.837 ns 8.854 ns - - - -
BitArrayGet EnableHWIntrinsic=0 After 512 3,389.743 ns 9.6731 ns 8.5749 ns 3,387.198 ns 3,378.539 ns 3,412.072 ns - - - -
BitArrayRightShift EnableHWIntrinsic=0 After 512 211.173 ns 0.1401 ns 0.1242 ns 211.176 ns 210.838 ns 211.332 ns - - - -
BitArrayLeftShift EnableHWIntrinsic=0 After 512 211.718 ns 0.4490 ns 0.3980 ns 211.590 ns 210.990 ns 212.431 ns - - - -
BitArrayAnd EnableHWIntrinsic=0 After 512 11.570 ns 0.0354 ns 0.0313 ns 11.559 ns 11.544 ns 11.654 ns - - - -
BitArrayOr EnableHWIntrinsic=0 After 512 11.576 ns 0.0373 ns 0.0311 ns 11.558 ns 11.538 ns 11.627 ns - - - -
BitArrayXor EnableHWIntrinsic=0 After 512 11.918 ns 0.0155 ns 0.0129 ns 11.915 ns 11.906 ns 11.953 ns - - - -
BitArraySet EnableHWIntrinsic=0 After 512 645.185 ns 5.4285 ns 5.0779 ns 642.750 ns 639.989 ns 655.056 ns - - - -
BitArraySetLengthGrow EnableHWIntrinsic=0 After 512 216.602 ns 1.1320 ns 1.0589 ns 216.114 ns 215.290 ns 219.078 ns 0.2570 0.0018 - 1616 B
BitArraySetLengthShrink EnableHWIntrinsic=0 After 512 139.600 ns 0.8438 ns 0.7047 ns 139.540 ns 138.575 ns 140.636 ns 0.0902 - - 568 B
BitArrayCopyToIntArray EnableHWIntrinsic=0 After 512 26.844 ns 0.0181 ns 0.0141 ns 26.844 ns 26.823 ns 26.865 ns - - - -
BitArrayCopyToByteArray EnableHWIntrinsic=0 After 512 126.659 ns 0.2348 ns 0.2081 ns 126.594 ns 126.274 ns 127.056 ns - - - -
BitArrayCopyToBoolArray EnableHWIntrinsic=0 After 512 5,341.866 ns 9.2580 ns 7.7308 ns 5,340.996 ns 5,325.298 ns 5,356.673 ns - - - -
BitArrayLengthCtor EnableHWIntrinsic=0 Before 512 9.131 ns 0.1267 ns 0.1123 ns 9.130 ns 8.980 ns 9.404 ns 0.0191 - - 120 B
BitArrayLengthValueCtor EnableHWIntrinsic=0 Before 512 13.580 ns 0.0596 ns 0.0528 ns 13.595 ns 13.498 ns 13.654 ns 0.0191 - - 120 B
BitArrayBitArrayCtor EnableHWIntrinsic=0 Before 512 18.509 ns 0.0574 ns 0.0509 ns 18.502 ns 18.427 ns 18.601 ns 0.0191 - - 120 B
BitArrayBoolArrayCtor EnableHWIntrinsic=0 Before 512 454.645 ns 1.7804 ns 1.6654 ns 454.366 ns 452.297 ns 457.427 ns 0.0183 - - 120 B
BitArrayByteArrayCtor EnableHWIntrinsic=0 Before 512 137.266 ns 1.1749 ns 1.0990 ns 136.998 ns 136.068 ns 139.813 ns 0.0902 - - 568 B
BitArrayIntArrayCtor EnableHWIntrinsic=0 Before 512 110.689 ns 2.2497 ns 2.5006 ns 110.540 ns 106.987 ns 114.941 ns 0.3352 0.0049 - 2104 B
BitArraySetAll EnableHWIntrinsic=0 Before 512 31.925 ns 0.3331 ns 0.3116 ns 31.742 ns 31.690 ns 32.688 ns - - - -
BitArrayNot EnableHWIntrinsic=0 Before 512 8.874 ns 0.0392 ns 0.0306 ns 8.862 ns 8.843 ns 8.939 ns - - - -
BitArrayGet EnableHWIntrinsic=0 Before 512 3,385.183 ns 1.9958 ns 1.5582 ns 3,384.764 ns 3,383.309 ns 3,388.462 ns - - - -
BitArrayRightShift EnableHWIntrinsic=0 Before 512 212.796 ns 2.0297 ns 1.8986 ns 211.597 ns 211.133 ns 216.599 ns - - - -
BitArrayLeftShift EnableHWIntrinsic=0 Before 512 211.702 ns 0.3071 ns 0.2722 ns 211.629 ns 211.406 ns 212.312 ns - - - -
BitArrayAnd EnableHWIntrinsic=0 Before 512 11.545 ns 0.0366 ns 0.0324 ns 11.530 ns 11.521 ns 11.627 ns - - - -
BitArrayOr EnableHWIntrinsic=0 Before 512 11.694 ns 0.1754 ns 0.1641 ns 11.608 ns 11.547 ns 12.060 ns - - - -
BitArrayXor EnableHWIntrinsic=0 Before 512 11.948 ns 0.0510 ns 0.0398 ns 11.936 ns 11.896 ns 12.032 ns - - - -
BitArraySet EnableHWIntrinsic=0 Before 512 646.558 ns 6.0841 ns 5.3934 ns 643.592 ns 642.392 ns 658.812 ns - - - -
BitArraySetLengthGrow EnableHWIntrinsic=0 Before 512 215.619 ns 0.9052 ns 0.7559 ns 215.726 ns 214.204 ns 216.684 ns 0.2572 0.0018 - 1616 B
BitArraySetLengthShrink EnableHWIntrinsic=0 Before 512 140.169 ns 1.0193 ns 0.9535 ns 139.937 ns 138.912 ns 142.400 ns 0.0904 - - 568 B
BitArrayCopyToIntArray EnableHWIntrinsic=0 Before 512 26.889 ns 0.0544 ns 0.0454 ns 26.875 ns 26.831 ns 26.968 ns - - - -
BitArrayCopyToByteArray EnableHWIntrinsic=0 Before 512 126.694 ns 0.1913 ns 0.1598 ns 126.645 ns 126.581 ns 127.139 ns - - - -
BitArrayCopyToBoolArray EnableHWIntrinsic=0 Before 512 5,341.419 ns 14.4041 ns 12.0281 ns 5,340.869 ns 5,314.366 ns 5,368.714 ns - - - -
BitArrayLengthCtor Empty After 512 9.139 ns 0.2158 ns 0.1913 ns 9.049 ns 8.982 ns 9.667 ns 0.0191 - - 120 B
BitArrayLengthValueCtor Empty After 512 17.688 ns 0.1627 ns 0.1443 ns 17.648 ns 17.507 ns 17.972 ns 0.0191 - - 120 B
BitArrayBitArrayCtor Empty After 512 19.006 ns 0.3121 ns 0.2920 ns 18.990 ns 18.663 ns 19.742 ns 0.0190 - - 120 B
BitArrayBoolArrayCtor Empty After 512 453.501 ns 1.4517 ns 1.2869 ns 453.571 ns 451.467 ns 455.915 ns 0.0182 - - 120 B
BitArrayByteArrayCtor Empty After 512 137.032 ns 1.1891 ns 1.0541 ns 137.001 ns 134.777 ns 139.190 ns 0.0904 - - 568 B
BitArrayIntArrayCtor Empty After 512 108.894 ns 2.5261 ns 2.8078 ns 108.088 ns 105.071 ns 114.495 ns 0.3353 0.0052 - 2104 B
BitArraySetAll Empty After 512 31.804 ns 0.1402 ns 0.1243 ns 31.754 ns 31.699 ns 32.072 ns - - - -
BitArrayNot Empty After 512 12.321 ns 0.1278 ns 0.1195 ns 12.249 ns 12.242 ns 12.636 ns - - - -
BitArrayGet Empty After 512 3,389.138 ns 6.9060 ns 5.3918 ns 3,386.558 ns 3,384.521 ns 3,401.112 ns - - - -
BitArrayRightShift Empty After 512 211.457 ns 0.5891 ns 0.5222 ns 211.196 ns 210.996 ns 212.595 ns - - - -
BitArrayLeftShift Empty After 512 214.099 ns 3.4638 ns 3.2400 ns 211.861 ns 211.418 ns 220.884 ns - - - -
BitArrayAnd Empty After 512 14.145 ns 0.0356 ns 0.0298 ns 14.139 ns 14.115 ns 14.210 ns - - - -
BitArrayOr Empty After 512 14.166 ns 0.0142 ns 0.0111 ns 14.163 ns 14.154 ns 14.188 ns - - - -
BitArrayXor Empty After 512 14.360 ns 0.0406 ns 0.0360 ns 14.348 ns 14.326 ns 14.458 ns - - - -
BitArraySet Empty After 512 643.987 ns 1.6050 ns 1.4228 ns 643.525 ns 642.473 ns 646.867 ns - - - -
BitArraySetLengthGrow Empty After 512 219.536 ns 2.5131 ns 2.3508 ns 218.556 ns 217.179 ns 224.270 ns 0.2572 0.0018 - 1616 B
BitArraySetLengthShrink Empty After 512 140.312 ns 1.3407 ns 1.1195 ns 139.956 ns 138.855 ns 143.232 ns 0.0900 - - 568 B
BitArrayCopyToIntArray Empty After 512 27.300 ns 0.0562 ns 0.0498 ns 27.286 ns 27.248 ns 27.408 ns - - - -
BitArrayCopyToByteArray Empty After 512 127.350 ns 1.7482 ns 1.5497 ns 126.640 ns 126.576 ns 131.603 ns - - - -
BitArrayCopyToBoolArray Empty After 512 5,341.188 ns 5.3699 ns 4.4841 ns 5,339.330 ns 5,335.363 ns 5,349.977 ns - - - -
BitArrayLengthCtor Empty Before 512 9.025 ns 0.0866 ns 0.0768 ns 9.016 ns 8.939 ns 9.181 ns 0.0191 - - 120 B
BitArrayLengthValueCtor Empty Before 512 13.729 ns 0.2036 ns 0.1805 ns 13.649 ns 13.520 ns 14.124 ns 0.0191 - - 120 B
BitArrayBitArrayCtor Empty Before 512 18.715 ns 0.1795 ns 0.1679 ns 18.623 ns 18.499 ns 19.049 ns 0.0191 - - 120 B
BitArrayBoolArrayCtor Empty Before 512 454.028 ns 0.8418 ns 0.7462 ns 453.859 ns 452.793 ns 455.384 ns 0.0183 - - 120 B
BitArrayByteArrayCtor Empty Before 512 137.018 ns 1.2645 ns 1.1209 ns 136.790 ns 135.904 ns 139.526 ns 0.0903 - - 568 B
BitArrayIntArrayCtor Empty Before 512 110.982 ns 2.2860 ns 2.3475 ns 111.759 ns 106.860 ns 114.624 ns 0.3349 0.0050 - 2104 B
BitArraySetAll Empty Before 512 31.732 ns 0.0594 ns 0.0496 ns 31.722 ns 31.684 ns 31.859 ns - - - -
BitArrayNot Empty Before 512 9.010 ns 0.3334 ns 0.3423 ns 8.824 ns 8.738 ns 9.952 ns - - - -
BitArrayGet Empty Before 512 3,385.726 ns 2.5910 ns 2.0229 ns 3,385.761 ns 3,381.344 ns 3,388.528 ns - - - -
BitArrayRightShift Empty Before 512 211.379 ns 0.3983 ns 0.3531 ns 211.259 ns 210.758 ns 211.999 ns - - - -
BitArrayLeftShift Empty Before 512 211.494 ns 0.1003 ns 0.0783 ns 211.488 ns 211.368 ns 211.656 ns - - - -
BitArrayAnd Empty Before 512 11.465 ns 0.0148 ns 0.0115 ns 11.467 ns 11.435 ns 11.478 ns - - - -
BitArrayOr Empty Before 512 11.489 ns 0.0308 ns 0.0288 ns 11.477 ns 11.458 ns 11.554 ns - - - -
BitArrayXor Empty Before 512 11.888 ns 0.0284 ns 0.0266 ns 11.879 ns 11.859 ns 11.932 ns - - - -
BitArraySet Empty Before 512 644.026 ns 3.0922 ns 2.5821 ns 643.070 ns 641.217 ns 650.213 ns - - - -
BitArraySetLengthGrow Empty Before 512 218.405 ns 1.7033 ns 1.5100 ns 217.931 ns 217.099 ns 222.628 ns 0.2568 0.0018 - 1616 B
BitArraySetLengthShrink Empty Before 512 139.867 ns 0.7760 ns 0.6879 ns 139.808 ns 138.759 ns 141.115 ns 0.0903 - - 568 B
BitArrayCopyToIntArray Empty Before 512 26.905 ns 0.0733 ns 0.0612 ns 26.881 ns 26.847 ns 27.029 ns - - - -
BitArrayCopyToByteArray Empty Before 512 126.883 ns 0.4986 ns 0.4164 ns 126.692 ns 126.574 ns 128.083 ns - - - -
BitArrayCopyToBoolArray Empty Before 512 5,347.611 ns 12.1740 ns 9.5047 ns 5,346.991 ns 5,334.915 ns 5,364.431 ns - - - -

BenchmarkDotNet.Artifacts.zip

@jkotas
Copy link
Member

jkotas commented Oct 15, 2019

These results suggests there is no advantage in using AVX for this. Do I read the results correctly?

@Gnbrkm41
Copy link
Contributor

Gnbrkm41 commented Oct 15, 2019

Old wrong benchmark - see below

I've experimented around various sizes, both with AVX2 and SSE2 path, and here are some results:

Benchmarks
BenchmarkDotNet=v0.11.5.1159-nightly, OS=Windows 10.0.18999
Intel Core i7-8700 CPU 3.20GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical cores
.NET Core SDK=5.0.100-alpha1-014885
  [Host]     : .NET Core 5.0.0-alpha1.19507.3 (CoreCLR 5.0.19.50101, CoreFX 5.0.19.50407), X64 RyuJIT
  Job-ONEQZA : .NET Core ? (CoreCLR 5.0.19.51202, CoreFX 5.0.19.51501), X64 RyuJIT
  Job-NZWJST : .NET Core ? (CoreCLR 5.0.19.51202, CoreFX 5.0.19.51501), X64 RyuJIT

PowerPlanMode=00000000-0000-0000-0000-000000000000  Toolchain=After  IterationTime=250.0000 ms  
MaxIterationCount=20  MinIterationCount=15  WarmupCount=1  
Method EnvironmentVariables Size Mean Error StdDev Median Min Max Gen 0 Gen 1 Gen 2 Allocated
BitArrayLengthCtor EnableAVX2=0 4 7.137 ns 0.0802 ns 0.0750 ns 7.136 ns 7.026 ns 7.288 ns 0.0102 - - 64 B
BitArrayLengthValueCtor EnableAVX2=0 4 9.988 ns 0.0822 ns 0.0769 ns 9.956 ns 9.897 ns 10.141 ns 0.0102 - - 64 B
BitArrayBitArrayCtor EnableAVX2=0 4 14.762 ns 0.0667 ns 0.0591 ns 14.742 ns 14.689 ns 14.865 ns 0.0102 - - 64 B
BitArrayBoolArrayCtor EnableAVX2=0 4 9.782 ns 0.2523 ns 0.2106 ns 9.702 ns 9.647 ns 10.406 ns 0.0102 - - 64 B
BitArrayByteArrayCtor EnableAVX2=0 4 7.969 ns 0.1242 ns 0.1162 ns 7.931 ns 7.828 ns 8.195 ns 0.0102 - - 64 B
BitArrayIntArrayCtor EnableAVX2=0 4 15.457 ns 0.1539 ns 0.1440 ns 15.397 ns 15.296 ns 15.747 ns 0.0114 - - 72 B
BitArraySetAll EnableAVX2=0 4 4.148 ns 0.0152 ns 0.0135 ns 4.143 ns 4.137 ns 4.179 ns - - - -
BitArrayNot EnableAVX2=0 4 1.304 ns 0.0077 ns 0.0068 ns 1.302 ns 1.296 ns 1.320 ns - - - -
BitArrayGet EnableAVX2=0 4 26.580 ns 0.3428 ns 0.3206 ns 26.391 ns 26.364 ns 27.166 ns - - - -
BitArrayRightShift EnableAVX2=0 4 4.800 ns 0.0173 ns 0.0145 ns 4.805 ns 4.784 ns 4.818 ns - - - -
BitArrayLeftShift EnableAVX2=0 4 4.299 ns 0.0154 ns 0.0129 ns 4.293 ns 4.287 ns 4.330 ns - - - -
BitArrayAnd EnableAVX2=0 4 1.568 ns 0.0079 ns 0.0066 ns 1.565 ns 1.561 ns 1.582 ns - - - -
BitArrayOr EnableAVX2=0 4 1.314 ns 0.0126 ns 0.0098 ns 1.312 ns 1.303 ns 1.341 ns - - - -
BitArrayXor EnableAVX2=0 4 1.528 ns 0.0027 ns 0.0024 ns 1.527 ns 1.524 ns 1.532 ns - - - -
BitArraySet EnableAVX2=0 4 5.016 ns 0.0500 ns 0.0468 ns 4.998 ns 4.957 ns 5.097 ns - - - -
BitArraySetLengthGrow EnableAVX2=0 4 28.993 ns 0.2034 ns 0.1903 ns 28.882 ns 28.798 ns 29.323 ns 0.0152 - - 96 B
BitArraySetLengthShrink EnableAVX2=0 4 10.653 ns 0.0534 ns 0.0446 ns 10.654 ns 10.597 ns 10.766 ns 0.0102 - - 64 B
BitArrayCopyToIntArray EnableAVX2=0 4 14.151 ns 0.0351 ns 0.0328 ns 14.145 ns 14.087 ns 14.217 ns - - - -
BitArrayCopyToByteArray EnableAVX2=0 4 23.257 ns 0.0249 ns 0.0221 ns 23.257 ns 23.220 ns 23.298 ns - - - -
BitArrayCopyToBoolArray EnableAVX2=0 4 75.963 ns 0.2357 ns 0.1840 ns 75.912 ns 75.788 ns 76.511 ns - - - -
BitArrayLengthCtor Empty 4 7.188 ns 0.0473 ns 0.0419 ns 7.177 ns 7.138 ns 7.289 ns 0.0102 - - 64 B
BitArrayLengthValueCtor Empty 4 9.718 ns 0.0394 ns 0.0329 ns 9.719 ns 9.669 ns 9.773 ns 0.0102 - - 64 B
BitArrayBitArrayCtor Empty 4 15.405 ns 0.1084 ns 0.1014 ns 15.373 ns 15.306 ns 15.647 ns 0.0102 - - 64 B
BitArrayBoolArrayCtor Empty 4 9.669 ns 0.0362 ns 0.0338 ns 9.667 ns 9.607 ns 9.722 ns 0.0101 - - 64 B
BitArrayByteArrayCtor Empty 4 7.984 ns 0.1078 ns 0.0956 ns 7.954 ns 7.884 ns 8.214 ns 0.0102 - - 64 B
BitArrayIntArrayCtor Empty 4 15.336 ns 0.0544 ns 0.0454 ns 15.342 ns 15.279 ns 15.453 ns 0.0115 - - 72 B
BitArraySetAll Empty 4 4.143 ns 0.0031 ns 0.0024 ns 4.142 ns 4.139 ns 4.147 ns - - - -
BitArrayNot Empty 4 1.305 ns 0.0086 ns 0.0076 ns 1.305 ns 1.292 ns 1.320 ns - - - -
BitArrayGet Empty 4 26.615 ns 0.3191 ns 0.2984 ns 26.408 ns 26.354 ns 27.127 ns - - - -
BitArrayRightShift Empty 4 4.812 ns 0.0494 ns 0.0438 ns 4.787 ns 4.783 ns 4.928 ns - - - -
BitArrayLeftShift Empty 4 4.302 ns 0.0241 ns 0.0201 ns 4.295 ns 4.286 ns 4.359 ns - - - -
BitArrayAnd Empty 4 1.565 ns 0.0070 ns 0.0054 ns 1.564 ns 1.561 ns 1.581 ns - - - -
BitArrayOr Empty 4 1.316 ns 0.0210 ns 0.0176 ns 1.312 ns 1.300 ns 1.366 ns - - - -
BitArrayXor Empty 4 1.531 ns 0.0440 ns 0.0390 ns 1.528 ns 1.485 ns 1.618 ns - - - -
BitArraySet Empty 4 4.986 ns 0.0151 ns 0.0126 ns 4.986 ns 4.961 ns 5.008 ns - - - -
BitArraySetLengthGrow Empty 4 28.785 ns 0.1223 ns 0.1085 ns 28.793 ns 28.625 ns 29.000 ns 0.0153 - - 96 B
BitArraySetLengthShrink Empty 4 12.664 ns 1.1847 ns 1.3643 ns 13.429 ns 10.620 ns 13.959 ns 0.0102 - - 64 B
BitArrayCopyToIntArray Empty 4 14.192 ns 0.1562 ns 0.1385 ns 14.116 ns 14.097 ns 14.550 ns - - - -
BitArrayCopyToByteArray Empty 4 23.262 ns 0.0229 ns 0.0191 ns 23.269 ns 23.233 ns 23.298 ns - - - -
BitArrayCopyToBoolArray Empty 4 76.025 ns 0.1970 ns 0.1746 ns 75.938 ns 75.841 ns 76.388 ns - - - -
BitArrayLengthCtor EnableAVX2=0 128 7.980 ns 0.0535 ns 0.0500 ns 7.971 ns 7.910 ns 8.075 ns 0.0114 - - 72 B
BitArrayLengthValueCtor EnableAVX2=0 128 10.007 ns 0.0601 ns 0.0502 ns 10.001 ns 9.923 ns 10.120 ns 0.0114 - - 72 B
BitArrayBitArrayCtor EnableAVX2=0 128 15.102 ns 0.0866 ns 0.0810 ns 15.070 ns 15.011 ns 15.299 ns 0.0114 - - 72 B
BitArrayBoolArrayCtor EnableAVX2=0 128 125.077 ns 0.3179 ns 0.2818 ns 124.976 ns 124.663 ns 125.679 ns 0.0113 - - 72 B
BitArrayByteArrayCtor EnableAVX2=0 128 37.330 ns 0.3102 ns 0.2901 ns 37.211 ns 37.069 ns 38.044 ns 0.0292 - - 184 B
BitArrayIntArrayCtor EnableAVX2=0 128 48.312 ns 0.2904 ns 0.2716 ns 48.311 ns 47.935 ns 48.855 ns 0.0904 0.0004 - 568 B
BitArraySetAll EnableAVX2=0 128 9.507 ns 0.0125 ns 0.0104 ns 9.505 ns 9.497 ns 9.534 ns - - - -
BitArrayNot EnableAVX2=0 128 2.667 ns 0.0321 ns 0.0268 ns 2.659 ns 2.634 ns 2.729 ns - - - -
BitArrayGet EnableAVX2=0 128 852.503 ns 1.1893 ns 0.9285 ns 852.272 ns 851.652 ns 855.268 ns - - - -
BitArrayRightShift EnableAVX2=0 128 54.924 ns 0.2051 ns 0.1919 ns 54.913 ns 54.719 ns 55.315 ns - - - -
BitArrayLeftShift EnableAVX2=0 128 54.447 ns 0.0371 ns 0.0310 ns 54.443 ns 54.406 ns 54.507 ns - - - -
BitArrayAnd EnableAVX2=0 128 4.606 ns 0.0042 ns 0.0037 ns 4.606 ns 4.600 ns 4.613 ns - - - -
BitArrayOr EnableAVX2=0 128 4.609 ns 0.0141 ns 0.0110 ns 4.606 ns 4.600 ns 4.638 ns - - - -
BitArrayXor EnableAVX2=0 128 4.937 ns 0.0103 ns 0.0091 ns 4.937 ns 4.912 ns 4.952 ns - - - -
BitArraySet EnableAVX2=0 128 164.266 ns 0.0552 ns 0.0461 ns 164.264 ns 164.194 ns 164.362 ns - - - -
BitArraySetLengthGrow EnableAVX2=0 128 74.481 ns 0.4399 ns 0.4114 ns 74.532 ns 73.705 ns 75.153 ns 0.0739 - - 464 B
BitArraySetLengthShrink EnableAVX2=0 128 40.984 ns 0.1391 ns 0.1233 ns 40.960 ns 40.812 ns 41.226 ns 0.0292 - - 184 B
BitArrayCopyToIntArray EnableAVX2=0 128 16.342 ns 0.0657 ns 0.0549 ns 16.322 ns 16.296 ns 16.493 ns - - - -
BitArrayCopyToByteArray EnableAVX2=0 128 46.634 ns 0.3533 ns 0.3132 ns 46.510 ns 46.357 ns 47.500 ns - - - -
BitArrayCopyToBoolArray EnableAVX2=0 128 1,365.347 ns 0.5912 ns 0.4936 ns 1,365.433 ns 1,364.461 ns 1,366.055 ns - - - -
BitArrayLengthCtor Empty 128 9.090 ns 0.8172 ns 0.9411 ns 9.188 ns 8.074 ns 10.137 ns 0.0115 - - 72 B
BitArrayLengthValueCtor Empty 128 10.060 ns 0.1125 ns 0.0940 ns 10.039 ns 9.944 ns 10.226 ns 0.0115 - - 72 B
BitArrayBitArrayCtor Empty 128 15.257 ns 0.2665 ns 0.2493 ns 15.135 ns 15.065 ns 15.800 ns 0.0114 - - 72 B
BitArrayBoolArrayCtor Empty 128 125.634 ns 1.0139 ns 0.8988 ns 125.333 ns 124.880 ns 128.113 ns 0.0113 - - 72 B
BitArrayByteArrayCtor Empty 128 37.163 ns 0.1338 ns 0.1117 ns 37.183 ns 37.033 ns 37.438 ns 0.0293 - - 184 B
BitArrayIntArrayCtor Empty 128 45.316 ns 0.6624 ns 0.5531 ns 45.242 ns 44.483 ns 46.532 ns 0.0904 0.0002 - 568 B
BitArraySetAll Empty 128 9.498 ns 0.0064 ns 0.0050 ns 9.499 ns 9.488 ns 9.505 ns - - - -
BitArrayNot Empty 128 7.328 ns 0.0025 ns 0.0020 ns 7.328 ns 7.324 ns 7.331 ns - - - -
BitArrayGet Empty 128 852.144 ns 0.3644 ns 0.2845 ns 852.126 ns 851.794 ns 852.837 ns - - - -
BitArrayRightShift Empty 128 54.767 ns 0.1329 ns 0.1243 ns 54.704 ns 54.639 ns 55.064 ns - - - -
BitArrayLeftShift Empty 128 53.933 ns 0.1299 ns 0.1084 ns 53.901 ns 53.840 ns 54.201 ns - - - -
BitArrayAnd Empty 128 8.501 ns 0.0308 ns 0.0289 ns 8.486 ns 8.481 ns 8.577 ns - - - -
BitArrayOr Empty 128 8.495 ns 0.0298 ns 0.0264 ns 8.483 ns 8.479 ns 8.565 ns - - - -
BitArrayXor Empty 128 8.944 ns 0.2380 ns 0.1987 ns 8.844 ns 8.797 ns 9.512 ns - - - -
BitArraySet Empty 128 165.174 ns 1.6579 ns 1.5508 ns 164.299 ns 164.173 ns 168.944 ns - - - -
BitArraySetLengthGrow Empty 128 74.555 ns 0.8137 ns 0.7612 ns 74.492 ns 73.375 ns 76.101 ns 0.0738 - - 464 B
BitArraySetLengthShrink Empty 128 40.401 ns 0.4763 ns 0.4456 ns 40.201 ns 40.001 ns 41.411 ns 0.0292 - - 184 B
BitArrayCopyToIntArray Empty 128 16.304 ns 0.0126 ns 0.0105 ns 16.302 ns 16.290 ns 16.331 ns - - - -
BitArrayCopyToByteArray Empty 128 47.073 ns 0.0338 ns 0.0264 ns 47.078 ns 47.022 ns 47.109 ns - - - -
BitArrayCopyToBoolArray Empty 128 1,365.530 ns 0.5920 ns 0.4944 ns 1,365.431 ns 1,364.885 ns 1,366.611 ns - - - -
BitArrayLengthCtor EnableAVX2=0 256 7.953 ns 0.0889 ns 0.0788 ns 7.922 ns 7.852 ns 8.132 ns 0.0140 - - 88 B
BitArrayLengthValueCtor EnableAVX2=0 256 11.139 ns 0.2773 ns 0.2316 ns 11.069 ns 10.978 ns 11.753 ns 0.0140 - - 88 B
BitArrayBitArrayCtor EnableAVX2=0 256 15.788 ns 0.1015 ns 0.0900 ns 15.781 ns 15.642 ns 15.948 ns 0.0140 - - 88 B
BitArrayBoolArrayCtor EnableAVX2=0 256 234.341 ns 0.8918 ns 0.7447 ns 234.514 ns 232.882 ns 235.412 ns 0.0135 - - 88 B
BitArrayByteArrayCtor EnableAVX2=0 256 68.378 ns 0.1940 ns 0.1720 ns 68.342 ns 68.123 ns 68.758 ns 0.0495 - - 312 B
BitArrayIntArrayCtor EnableAVX2=0 256 67.787 ns 1.1503 ns 1.0197 ns 67.981 ns 65.778 ns 69.442 ns 0.1719 0.0014 - 1080 B
BitArraySetAll EnableAVX2=0 256 16.500 ns 0.0100 ns 0.0078 ns 16.497 ns 16.492 ns 16.516 ns - - - -
BitArrayNot EnableAVX2=0 256 4.456 ns 0.0782 ns 0.0731 ns 4.414 ns 4.392 ns 4.576 ns - - - -
BitArrayGet EnableAVX2=0 256 1,697.191 ns 1.1567 ns 1.0253 ns 1,697.099 ns 1,695.620 ns 1,698.779 ns - - - -
BitArrayRightShift EnableAVX2=0 256 106.939 ns 0.8322 ns 0.7784 ns 106.526 ns 106.457 ns 108.870 ns - - - -
BitArrayLeftShift EnableAVX2=0 256 105.478 ns 0.0793 ns 0.0619 ns 105.481 ns 105.375 ns 105.586 ns - - - -
BitArrayAnd EnableAVX2=0 256 7.052 ns 0.0138 ns 0.0115 ns 7.051 ns 7.042 ns 7.082 ns - - - -
BitArrayOr EnableAVX2=0 256 7.076 ns 0.0777 ns 0.0689 ns 7.043 ns 7.035 ns 7.254 ns - - - -
BitArrayXor EnableAVX2=0 256 7.164 ns 0.1065 ns 0.0944 ns 7.121 ns 7.109 ns 7.438 ns - - - -
BitArraySet EnableAVX2=0 256 324.615 ns 1.3107 ns 1.1619 ns 324.226 ns 323.389 ns 327.963 ns - - - -
BitArraySetLengthGrow EnableAVX2=0 256 128.647 ns 1.7670 ns 1.6528 ns 127.914 ns 127.124 ns 132.443 ns 0.1347 0.0005 - 848 B
BitArraySetLengthShrink EnableAVX2=0 256 72.935 ns 0.3041 ns 0.2696 ns 72.877 ns 72.607 ns 73.482 ns 0.0496 - - 312 B
BitArrayCopyToIntArray EnableAVX2=0 256 24.977 ns 0.0273 ns 0.0228 ns 24.967 ns 24.954 ns 25.033 ns - - - -
BitArrayCopyToByteArray EnableAVX2=0 256 71.032 ns 0.1535 ns 0.1198 ns 70.967 ns 70.907 ns 71.224 ns - - - -
BitArrayCopyToBoolArray EnableAVX2=0 256 2,695.287 ns 6.8652 ns 5.7328 ns 2,693.451 ns 2,689.169 ns 2,707.415 ns - - - -
BitArrayLengthCtor Empty 256 8.108 ns 0.1149 ns 0.1074 ns 8.109 ns 7.933 ns 8.263 ns 0.0140 - - 88 B
BitArrayLengthValueCtor Empty 256 11.150 ns 0.1922 ns 0.1704 ns 11.122 ns 10.939 ns 11.489 ns 0.0140 - - 88 B
BitArrayBitArrayCtor Empty 256 15.700 ns 0.1266 ns 0.1184 ns 15.681 ns 15.562 ns 16.009 ns 0.0140 - - 88 B
BitArrayBoolArrayCtor Empty 256 234.557 ns 1.0967 ns 0.9722 ns 234.458 ns 233.137 ns 236.342 ns 0.0136 - - 88 B
BitArrayByteArrayCtor Empty 256 68.546 ns 0.3347 ns 0.2795 ns 68.507 ns 68.163 ns 69.151 ns 0.0495 - - 312 B
BitArrayIntArrayCtor Empty 256 67.471 ns 1.4563 ns 1.6771 ns 67.444 ns 65.397 ns 70.980 ns 0.1719 0.0011 - 1080 B
BitArraySetAll Empty 256 16.305 ns 0.0543 ns 0.0453 ns 16.292 ns 16.260 ns 16.393 ns - - - -
BitArrayNot Empty 256 8.998 ns 0.0440 ns 0.0390 ns 8.981 ns 8.975 ns 9.099 ns - - - -
BitArrayGet Empty 256 1,697.421 ns 1.5983 ns 1.2478 ns 1,696.888 ns 1,696.280 ns 1,699.489 ns - - - -
BitArrayRightShift Empty 256 107.174 ns 0.1730 ns 0.1444 ns 107.130 ns 107.039 ns 107.574 ns - - - -
BitArrayLeftShift Empty 256 106.008 ns 0.0534 ns 0.0446 ns 106.010 ns 105.943 ns 106.089 ns - - - -
BitArrayAnd Empty 256 10.437 ns 0.1254 ns 0.1173 ns 10.369 ns 10.342 ns 10.743 ns - - - -
BitArrayOr Empty 256 10.375 ns 0.0225 ns 0.0188 ns 10.367 ns 10.358 ns 10.420 ns - - - -
BitArrayXor Empty 256 10.578 ns 0.0219 ns 0.0182 ns 10.571 ns 10.565 ns 10.624 ns - - - -
BitArraySet Empty 256 324.539 ns 1.4179 ns 1.2569 ns 323.824 ns 323.583 ns 327.491 ns - - - -
BitArraySetLengthGrow Empty 256 129.289 ns 1.4027 ns 1.2434 ns 129.282 ns 127.893 ns 131.600 ns 0.1350 0.0005 - 848 B
BitArraySetLengthShrink Empty 256 72.934 ns 0.5183 ns 0.4595 ns 72.779 ns 72.548 ns 74.253 ns 0.0495 - - 312 B
BitArrayCopyToIntArray Empty 256 24.982 ns 0.0468 ns 0.0391 ns 24.970 ns 24.938 ns 25.062 ns - - - -
BitArrayCopyToByteArray Empty 256 70.960 ns 0.0892 ns 0.0745 ns 70.941 ns 70.866 ns 71.135 ns - - - -
BitArrayCopyToBoolArray Empty 256 2,696.298 ns 13.3773 ns 11.1706 ns 2,692.921 ns 2,686.919 ns 2,726.518 ns - - - -
BitArrayLengthCtor EnableAVX2=0 512 9.166 ns 0.1404 ns 0.1245 ns 9.165 ns 8.998 ns 9.377 ns 0.0191 - - 120 B
BitArrayLengthValueCtor EnableAVX2=0 512 13.777 ns 0.2078 ns 0.1943 ns 13.832 ns 13.476 ns 14.169 ns 0.0191 - - 120 B
BitArrayBitArrayCtor EnableAVX2=0 512 19.236 ns 0.3207 ns 0.2999 ns 19.123 ns 18.962 ns 19.959 ns 0.0191 - - 120 B
BitArrayBoolArrayCtor EnableAVX2=0 512 453.238 ns 1.3018 ns 1.1540 ns 452.783 ns 452.020 ns 455.776 ns 0.0183 - - 120 B
BitArrayByteArrayCtor EnableAVX2=0 512 142.997 ns 8.0919 ns 8.9941 ns 137.414 ns 135.182 ns 167.950 ns 0.0904 - - 568 B
BitArrayIntArrayCtor EnableAVX2=0 512 113.919 ns 2.1653 ns 1.9195 ns 113.832 ns 109.596 ns 117.035 ns 0.3353 0.0050 - 2104 B
BitArraySetAll EnableAVX2=0 512 31.814 ns 0.1018 ns 0.0795 ns 31.793 ns 31.705 ns 31.978 ns - - - -
BitArrayNot EnableAVX2=0 512 9.546 ns 0.0531 ns 0.0443 ns 9.542 ns 9.492 ns 9.611 ns - - - -
BitArrayGet EnableAVX2=0 512 3,449.540 ns 50.1138 ns 46.8764 ns 3,464.324 ns 3,397.893 ns 3,538.384 ns - - - -
BitArrayRightShift EnableAVX2=0 512 212.600 ns 2.0787 ns 1.7358 ns 212.015 ns 211.281 ns 216.931 ns - - - -
BitArrayLeftShift EnableAVX2=0 512 212.598 ns 2.1313 ns 1.8894 ns 211.658 ns 211.507 ns 216.134 ns - - - -
BitArrayAnd EnableAVX2=0 512 13.970 ns 0.0880 ns 0.0780 ns 13.945 ns 13.888 ns 14.113 ns - - - -
BitArrayOr EnableAVX2=0 512 11.755 ns 0.0510 ns 0.0452 ns 11.745 ns 11.696 ns 11.820 ns - - - -
BitArrayXor EnableAVX2=0 512 12.349 ns 0.1399 ns 0.1308 ns 12.273 ns 12.258 ns 12.603 ns - - - -
BitArraySet EnableAVX2=0 512 642.803 ns 0.4163 ns 0.3250 ns 642.726 ns 642.341 ns 643.583 ns - - - -
BitArraySetLengthGrow EnableAVX2=0 512 216.911 ns 0.9606 ns 0.7499 ns 217.095 ns 215.359 ns 217.861 ns 0.2570 0.0018 - 1616 B
BitArraySetLengthShrink EnableAVX2=0 512 139.812 ns 0.8013 ns 0.7103 ns 139.905 ns 138.484 ns 140.696 ns 0.0900 - - 568 B
BitArrayCopyToIntArray EnableAVX2=0 512 27.029 ns 0.2914 ns 0.2583 ns 26.906 ns 26.878 ns 27.596 ns - - - -
BitArrayCopyToByteArray EnableAVX2=0 512 126.636 ns 0.0737 ns 0.0653 ns 126.630 ns 126.531 ns 126.792 ns - - - -
BitArrayCopyToBoolArray EnableAVX2=0 512 5,349.299 ns 4.4541 ns 3.4775 ns 5,349.026 ns 5,342.394 ns 5,355.097 ns - - - -
BitArrayLengthCtor Empty 512 9.095 ns 0.1248 ns 0.1167 ns 9.083 ns 8.963 ns 9.368 ns 0.0191 - - 120 B
BitArrayLengthValueCtor Empty 512 13.758 ns 0.1461 ns 0.1295 ns 13.744 ns 13.582 ns 14.022 ns 0.0191 - - 120 B
BitArrayBitArrayCtor Empty 512 18.614 ns 0.1061 ns 0.0941 ns 18.589 ns 18.503 ns 18.775 ns 0.0191 - - 120 B
BitArrayBoolArrayCtor Empty 512 453.840 ns 0.8686 ns 0.7700 ns 453.769 ns 452.617 ns 455.268 ns 0.0184 - - 120 B
BitArrayByteArrayCtor Empty 512 138.014 ns 2.7787 ns 2.7290 ns 137.044 ns 135.267 ns 144.401 ns 0.0902 - - 568 B
BitArrayIntArrayCtor Empty 512 109.300 ns 2.1014 ns 1.9657 ns 109.303 ns 105.485 ns 113.418 ns 0.3352 0.0051 - 2104 B
BitArraySetAll Empty 512 31.710 ns 0.0232 ns 0.0194 ns 31.714 ns 31.671 ns 31.730 ns - - - -
BitArrayNot Empty 512 12.244 ns 0.0054 ns 0.0045 ns 12.243 ns 12.234 ns 12.253 ns - - - -
BitArrayGet Empty 512 3,389.217 ns 6.1596 ns 4.8090 ns 3,387.484 ns 3,386.252 ns 3,403.502 ns - - - -
BitArrayRightShift Empty 512 211.220 ns 0.0699 ns 0.0584 ns 211.213 ns 211.136 ns 211.355 ns - - - -
BitArrayLeftShift Empty 512 211.744 ns 0.2864 ns 0.2392 ns 211.666 ns 211.516 ns 212.314 ns - - - -
BitArrayAnd Empty 512 14.133 ns 0.0135 ns 0.0113 ns 14.129 ns 14.119 ns 14.158 ns - - - -
BitArrayOr Empty 512 14.305 ns 0.2765 ns 0.2586 ns 14.137 ns 14.123 ns 14.937 ns - - - -
BitArrayXor Empty 512 14.432 ns 0.1371 ns 0.1283 ns 14.352 ns 14.342 ns 14.688 ns - - - -
BitArraySet Empty 512 643.037 ns 0.7672 ns 0.5990 ns 642.880 ns 642.476 ns 644.493 ns - - - -
BitArraySetLengthGrow Empty 512 217.029 ns 1.1314 ns 1.0583 ns 216.735 ns 215.624 ns 218.919 ns 0.2571 0.0017 - 1616 B
BitArraySetLengthShrink Empty 512 140.080 ns 0.6624 ns 0.5872 ns 139.873 ns 139.299 ns 141.412 ns 0.0901 - - 568 B
BitArrayCopyToIntArray Empty 512 27.026 ns 0.2656 ns 0.2485 ns 26.903 ns 26.828 ns 27.558 ns - - - -
BitArrayCopyToByteArray Empty 512 126.622 ns 0.0643 ns 0.0570 ns 126.625 ns 126.542 ns 126.708 ns - - - -
BitArrayCopyToBoolArray Empty 512 5,343.364 ns 6.2564 ns 5.5461 ns 5,341.886 ns 5,335.726 ns 5,353.325 ns - - - -
BitArrayLengthCtor EnableAVX2=0 768 10.098 ns 0.1006 ns 0.0840 ns 10.094 ns 10.012 ns 10.319 ns 0.0242 - - 152 B
BitArrayLengthValueCtor EnableAVX2=0 768 16.174 ns 0.0893 ns 0.0835 ns 16.159 ns 16.049 ns 16.335 ns 0.0242 - - 152 B
BitArrayBitArrayCtor EnableAVX2=0 768 20.941 ns 0.1224 ns 0.1145 ns 20.905 ns 20.788 ns 21.180 ns 0.0242 - - 152 B
BitArrayBoolArrayCtor EnableAVX2=0 768 643.398 ns 5.0841 ns 4.7557 ns 642.497 ns 637.964 ns 653.952 ns 0.0232 - - 152 B
BitArrayByteArrayCtor EnableAVX2=0 768 198.421 ns 0.3782 ns 0.3352 ns 198.400 ns 197.807 ns 199.130 ns 0.1307 0.0008 - 824 B
BitArrayIntArrayCtor EnableAVX2=0 768 160.102 ns 2.4877 ns 2.3270 ns 160.077 ns 156.105 ns 165.502 ns 0.4984 0.0111 - 3128 B
BitArraySetAll EnableAVX2=0 768 47.053 ns 0.0904 ns 0.0755 ns 47.026 ns 46.995 ns 47.265 ns - - - -
BitArrayNot EnableAVX2=0 768 11.330 ns 0.0255 ns 0.0238 ns 11.322 ns 11.296 ns 11.376 ns - - - -
BitArrayGet EnableAVX2=0 768 5,075.962 ns 3.1169 ns 2.4335 ns 5,076.376 ns 5,068.750 ns 5,078.308 ns - - - -
BitArrayRightShift EnableAVX2=0 768 313.262 ns 0.7618 ns 0.5947 ns 312.961 ns 312.719 ns 314.500 ns - - - -
BitArrayLeftShift EnableAVX2=0 768 313.979 ns 1.6501 ns 1.4627 ns 313.149 ns 312.965 ns 317.621 ns - - - -
BitArrayAnd EnableAVX2=0 768 14.502 ns 0.0857 ns 0.0760 ns 14.483 ns 14.434 ns 14.711 ns - - - -
BitArrayOr EnableAVX2=0 768 14.535 ns 0.2139 ns 0.1896 ns 14.437 ns 14.422 ns 15.004 ns - - - -
BitArrayXor EnableAVX2=0 768 14.666 ns 0.0699 ns 0.0654 ns 14.635 ns 14.615 ns 14.792 ns - - - -
BitArraySet EnableAVX2=0 768 961.768 ns 0.8360 ns 0.7411 ns 961.776 ns 960.769 ns 963.380 ns - - - -
BitArraySetLengthGrow EnableAVX2=0 768 299.766 ns 0.9173 ns 0.8131 ns 299.493 ns 298.766 ns 300.987 ns 0.3794 0.0048 - 2384 B
BitArraySetLengthShrink EnableAVX2=0 768 202.058 ns 1.9784 ns 1.7538 ns 201.150 ns 200.700 ns 206.137 ns 0.1308 - - 824 B
BitArrayCopyToIntArray EnableAVX2=0 768 29.213 ns 0.2836 ns 0.2514 ns 29.071 ns 29.027 ns 29.754 ns - - - -
BitArrayCopyToByteArray EnableAVX2=0 768 175.500 ns 0.0885 ns 0.0739 ns 175.483 ns 175.364 ns 175.621 ns - - - -
BitArrayCopyToBoolArray EnableAVX2=0 768 7,998.765 ns 3.6133 ns 2.8210 ns 7,998.209 ns 7,993.961 ns 8,003.229 ns - - - -
BitArrayLengthCtor Empty 768 10.155 ns 0.1307 ns 0.1020 ns 10.178 ns 9.992 ns 10.287 ns 0.0242 - - 152 B
BitArrayLengthValueCtor Empty 768 16.180 ns 0.0775 ns 0.0647 ns 16.202 ns 16.058 ns 16.302 ns 0.0242 - - 152 B
BitArrayBitArrayCtor Empty 768 20.778 ns 0.0743 ns 0.0659 ns 20.778 ns 20.661 ns 20.872 ns 0.0242 - - 152 B
BitArrayBoolArrayCtor Empty 768 642.075 ns 5.8907 ns 5.2220 ns 639.813 ns 638.139 ns 653.562 ns 0.0233 - - 152 B
BitArrayByteArrayCtor Empty 768 198.087 ns 0.5308 ns 0.4706 ns 198.043 ns 197.299 ns 199.089 ns 0.1309 0.0008 - 824 B
BitArrayIntArrayCtor Empty 768 158.804 ns 2.8091 ns 2.6277 ns 159.095 ns 152.529 ns 161.866 ns 0.4985 0.0115 - 3128 B
BitArraySetAll Empty 768 47.280 ns 0.3672 ns 0.3435 ns 47.033 ns 46.969 ns 47.892 ns - - - -
BitArrayNot Empty 768 15.545 ns 0.0096 ns 0.0075 ns 15.545 ns 15.533 ns 15.562 ns - - - -
BitArrayGet Empty 768 5,077.974 ns 3.8201 ns 3.1900 ns 5,077.892 ns 5,073.425 ns 5,083.867 ns - - - -
BitArrayRightShift Empty 768 313.847 ns 1.7101 ns 1.5160 ns 312.901 ns 312.720 ns 317.322 ns - - - -
BitArrayLeftShift Empty 768 313.028 ns 0.1583 ns 0.1403 ns 313.024 ns 312.786 ns 313.210 ns - - - -
BitArrayAnd Empty 768 17.908 ns 0.0124 ns 0.0097 ns 17.907 ns 17.892 ns 17.928 ns - - - -
BitArrayOr Empty 768 17.956 ns 0.0529 ns 0.0469 ns 17.936 ns 17.905 ns 18.039 ns - - - -
BitArrayXor Empty 768 18.134 ns 0.0409 ns 0.0319 ns 18.120 ns 18.108 ns 18.204 ns - - - -
BitArraySet Empty 768 962.981 ns 2.8456 ns 2.6618 ns 961.798 ns 960.891 ns 969.686 ns - - - -
BitArraySetLengthGrow Empty 768 301.783 ns 1.1712 ns 1.0955 ns 301.511 ns 299.929 ns 303.955 ns 0.3793 0.0049 - 2384 B
BitArraySetLengthShrink Empty 768 201.080 ns 0.4063 ns 0.3602 ns 201.086 ns 200.440 ns 201.639 ns 0.1312 - - 824 B
BitArrayCopyToIntArray Empty 768 29.622 ns 0.0223 ns 0.0186 ns 29.619 ns 29.596 ns 29.656 ns - - - -
BitArrayCopyToByteArray Empty 768 175.515 ns 0.1087 ns 0.0908 ns 175.515 ns 175.399 ns 175.674 ns - - - -
BitArrayCopyToBoolArray Empty 768 8,001.283 ns 20.5899 ns 17.1935 ns 7,993.540 ns 7,990.120 ns 8,044.771 ns - - - -
BitArrayLengthCtor EnableAVX2=0 1024 11.256 ns 0.1327 ns 0.1176 ns 11.231 ns 11.122 ns 11.512 ns 0.0293 - - 184 B
BitArrayLengthValueCtor EnableAVX2=0 1024 18.670 ns 0.1321 ns 0.1236 ns 18.643 ns 18.492 ns 18.900 ns 0.0293 - - 184 B
BitArrayBitArrayCtor EnableAVX2=0 1024 26.188 ns 0.3440 ns 0.3218 ns 26.007 ns 25.910 ns 26.920 ns 0.0293 - - 184 B
BitArrayBoolArrayCtor EnableAVX2=0 1024 859.295 ns 4.2714 ns 3.7865 ns 858.661 ns 852.893 ns 866.705 ns 0.0276 - - 184 B
BitArrayByteArrayCtor EnableAVX2=0 1024 260.992 ns 2.2248 ns 2.0811 ns 261.776 ns 257.984 ns 263.456 ns 0.1712 0.0011 - 1080 B
BitArrayIntArrayCtor EnableAVX2=0 1024 199.567 ns 4.9798 ns 5.7347 ns 199.376 ns 192.483 ns 210.589 ns 0.6614 0.0198 - 4152 B
BitArraySetAll EnableAVX2=0 1024 62.540 ns 0.3303 ns 0.2928 ns 62.417 ns 62.313 ns 63.191 ns - - - -
BitArrayNot EnableAVX2=0 1024 17.176 ns 0.2513 ns 0.2351 ns 17.015 ns 16.989 ns 17.581 ns - - - -
BitArrayGet EnableAVX2=0 1024 6,771.497 ns 20.4896 ns 17.1098 ns 6,765.077 ns 6,761.949 ns 6,811.843 ns - - - -
BitArrayRightShift EnableAVX2=0 1024 414.808 ns 1.2029 ns 0.9391 ns 414.439 ns 413.817 ns 416.873 ns - - - -
BitArrayLeftShift EnableAVX2=0 1024 414.997 ns 1.1907 ns 1.0555 ns 414.494 ns 414.301 ns 417.785 ns - - - -
BitArrayAnd EnableAVX2=0 1024 18.767 ns 0.1104 ns 0.0922 ns 18.723 ns 18.709 ns 19.005 ns - - - -
BitArrayOr EnableAVX2=0 1024 18.263 ns 0.0184 ns 0.0154 ns 18.265 ns 18.234 ns 18.288 ns - - - -
BitArrayXor EnableAVX2=0 1024 18.282 ns 0.0168 ns 0.0140 ns 18.279 ns 18.262 ns 18.320 ns - - - -
BitArraySet EnableAVX2=0 1024 1,280.753 ns 0.8096 ns 0.6321 ns 1,280.689 ns 1,279.589 ns 1,281.772 ns - - - -
BitArraySetLengthGrow EnableAVX2=0 1024 391.953 ns 4.6157 ns 4.3175 ns 390.532 ns 387.081 ns 403.790 ns 0.5016 0.0079 - 3152 B
BitArraySetLengthShrink EnableAVX2=0 1024 264.503 ns 1.3624 ns 1.2744 ns 264.325 ns 262.487 ns 267.351 ns 0.1719 0.0011 - 1080 B
BitArrayCopyToIntArray EnableAVX2=0 1024 30.562 ns 0.0191 ns 0.0149 ns 30.557 ns 30.537 ns 30.587 ns - - - -
BitArrayCopyToByteArray EnableAVX2=0 1024 224.426 ns 0.2591 ns 0.2163 ns 224.380 ns 224.149 ns 224.996 ns - - - -
BitArrayCopyToBoolArray EnableAVX2=0 1024 10,665.284 ns 12.5707 ns 11.1436 ns 10,663.372 ns 10,652.253 ns 10,689.454 ns - - - -
BitArrayLengthCtor Empty 1024 11.196 ns 0.0889 ns 0.0832 ns 11.197 ns 11.084 ns 11.346 ns 0.0293 - - 184 B
BitArrayLengthValueCtor Empty 1024 19.405 ns 0.1616 ns 0.1432 ns 19.394 ns 19.214 ns 19.712 ns 0.0293 - - 184 B
BitArrayBitArrayCtor Empty 1024 22.332 ns 0.3336 ns 0.3121 ns 22.182 ns 21.940 ns 22.849 ns 0.0293 - - 184 B
BitArrayBoolArrayCtor Empty 1024 862.233 ns 8.3845 ns 7.4326 ns 860.282 ns 853.751 ns 880.131 ns 0.0277 - - 184 B
BitArrayByteArrayCtor Empty 1024 260.570 ns 1.8281 ns 1.6206 ns 260.095 ns 258.527 ns 263.640 ns 0.1713 0.0011 - 1080 B
BitArrayIntArrayCtor Empty 1024 202.811 ns 4.5072 ns 5.1905 ns 205.196 ns 193.403 ns 208.677 ns 0.6617 0.0195 - 4152 B
BitArraySetAll Empty 1024 62.371 ns 0.0221 ns 0.0196 ns 62.371 ns 62.341 ns 62.400 ns - - - -
BitArrayNot Empty 1024 18.841 ns 0.0254 ns 0.0212 ns 18.832 ns 18.819 ns 18.898 ns - - - -
BitArrayGet Empty 1024 6,771.226 ns 17.5734 ns 14.6746 ns 6,766.753 ns 6,761.061 ns 6,813.206 ns - - - -
BitArrayRightShift Empty 1024 414.522 ns 0.7892 ns 0.6590 ns 414.300 ns 414.088 ns 416.518 ns - - - -
BitArrayLeftShift Empty 1024 414.506 ns 0.2836 ns 0.2214 ns 414.469 ns 414.210 ns 415.050 ns - - - -
BitArrayAnd Empty 1024 21.652 ns 0.0125 ns 0.0105 ns 21.651 ns 21.636 ns 21.668 ns - - - -
BitArrayOr Empty 1024 21.696 ns 0.0231 ns 0.0180 ns 21.696 ns 21.657 ns 21.723 ns - - - -
BitArrayXor Empty 1024 22.052 ns 0.0569 ns 0.0475 ns 22.038 ns 22.008 ns 22.166 ns - - - -
BitArraySet Empty 1024 1,283.191 ns 7.8933 ns 6.1626 ns 1,280.315 ns 1,279.189 ns 1,301.211 ns - - - -
BitArraySetLengthGrow Empty 1024 390.763 ns 1.3456 ns 1.1928 ns 391.013 ns 388.889 ns 393.293 ns 0.5015 0.0078 - 3152 B
BitArraySetLengthShrink Empty 1024 263.129 ns 1.6033 ns 1.4997 ns 262.837 ns 260.605 ns 265.585 ns 0.1719 0.0011 - 1080 B
BitArrayCopyToIntArray Empty 1024 30.685 ns 0.0943 ns 0.0788 ns 30.638 ns 30.604 ns 30.837 ns - - - -
BitArrayCopyToByteArray Empty 1024 224.509 ns 0.4418 ns 0.3689 ns 224.352 ns 224.283 ns 225.389 ns - - - -
BitArrayCopyToBoolArray Empty 1024 10,829.987 ns 214.0653 ns 229.0474 ns 10,732.172 ns 10,646.962 ns 11,461.686 ns - - - -
BitArrayLengthCtor EnableAVX2=0 2048 15.595 ns 0.2123 ns 0.1882 ns 15.598 ns 15.368 ns 15.941 ns 0.0497 0.0001 - 312 B
BitArrayLengthValueCtor EnableAVX2=0 2048 30.340 ns 0.4582 ns 0.4286 ns 30.212 ns 29.944 ns 31.379 ns 0.0496 - - 312 B
BitArrayBitArrayCtor EnableAVX2=0 2048 35.344 ns 0.7776 ns 0.7274 ns 35.339 ns 34.554 ns 36.525 ns 0.0497 - - 312 B
BitArrayBoolArrayCtor EnableAVX2=0 2048 1,891.243 ns 23.8825 ns 21.1712 ns 1,897.733 ns 1,834.337 ns 1,917.541 ns 0.0444 - - 312 B
BitArrayByteArrayCtor EnableAVX2=0 2048 506.090 ns 1.5375 ns 1.3630 ns 505.436 ns 504.359 ns 508.660 ns 0.3336 0.0041 - 2104 B
BitArrayIntArrayCtor EnableAVX2=0 2048 424.010 ns 7.6313 ns 7.1383 ns 426.581 ns 405.647 ns 435.464 ns 1.3127 0.0758 - 8248 B
BitArraySetAll EnableAVX2=0 2048 123.151 ns 0.1381 ns 0.1153 ns 123.106 ns 123.032 ns 123.471 ns - - - -
BitArrayNot EnableAVX2=0 2048 30.835 ns 0.2796 ns 0.2615 ns 30.724 ns 30.579 ns 31.507 ns - - - -
BitArrayGet EnableAVX2=0 2048 13,610.283 ns 105.0939 ns 93.1630 ns 13,588.108 ns 13,522.891 ns 13,855.142 ns - - - -
BitArrayRightShift EnableAVX2=0 2048 826.147 ns 9.1081 ns 8.0741 ns 822.240 ns 820.150 ns 845.740 ns - - - -
BitArrayLeftShift EnableAVX2=0 2048 821.372 ns 1.4920 ns 1.3956 ns 820.867 ns 820.076 ns 824.900 ns - - - -
BitArrayAnd EnableAVX2=0 2048 38.137 ns 0.0709 ns 0.0592 ns 38.108 ns 38.085 ns 38.278 ns - - - -
BitArrayOr EnableAVX2=0 2048 33.348 ns 0.0315 ns 0.0295 ns 33.346 ns 33.294 ns 33.412 ns - - - -
BitArrayXor EnableAVX2=0 2048 36.120 ns 0.0616 ns 0.0546 ns 36.107 ns 36.050 ns 36.220 ns - - - -
BitArraySet EnableAVX2=0 2048 2,557.301 ns 3.5986 ns 2.8096 ns 2,556.121 ns 2,554.984 ns 2,563.179 ns - - - -
BitArraySetLengthGrow EnableAVX2=0 2048 733.580 ns 3.7675 ns 3.3398 ns 733.625 ns 728.771 ns 740.849 ns 0.9894 0.0359 - 6224 B
BitArraySetLengthShrink EnableAVX2=0 2048 513.924 ns 4.8173 ns 4.5061 ns 511.749 ns 509.077 ns 523.763 ns 0.3352 0.0041 - 2104 B
BitArrayCopyToIntArray EnableAVX2=0 2048 42.563 ns 0.0485 ns 0.0405 ns 42.554 ns 42.519 ns 42.670 ns - - - -
BitArrayCopyToByteArray EnableAVX2=0 2048 420.066 ns 0.5044 ns 0.4471 ns 419.946 ns 419.622 ns 421.086 ns - - - -
BitArrayCopyToBoolArray EnableAVX2=0 2048 21,449.612 ns 255.6837 ns 239.1667 ns 21,380.884 ns 21,253.801 ns 21,952.398 ns - - - -
BitArrayLengthCtor Empty 2048 17.043 ns 0.3357 ns 0.3140 ns 16.933 ns 16.681 ns 17.595 ns 0.0497 0.0001 - 312 B
BitArrayLengthValueCtor Empty 2048 30.254 ns 0.1522 ns 0.1349 ns 30.221 ns 30.089 ns 30.527 ns 0.0497 - - 312 B
BitArrayBitArrayCtor Empty 2048 34.535 ns 0.1768 ns 0.1567 ns 34.493 ns 34.336 ns 34.955 ns 0.0497 - - 312 B
BitArrayBoolArrayCtor Empty 2048 1,903.380 ns 26.6631 ns 24.9407 ns 1,900.460 ns 1,839.176 ns 1,949.231 ns 0.0461 - - 312 B
BitArrayByteArrayCtor Empty 2048 505.809 ns 1.5121 ns 1.4145 ns 505.894 ns 502.556 ns 507.755 ns 0.3350 0.0041 - 2104 B
BitArrayIntArrayCtor Empty 2048 422.806 ns 8.4614 ns 7.9148 ns 423.560 ns 412.330 ns 438.271 ns 1.3125 0.0756 - 8248 B
BitArraySetAll Empty 2048 123.086 ns 0.0358 ns 0.0280 ns 123.086 ns 123.034 ns 123.139 ns - - - -
BitArrayNot Empty 2048 32.719 ns 0.0529 ns 0.0495 ns 32.699 ns 32.673 ns 32.830 ns - - - -
BitArrayGet Empty 2048 13,634.173 ns 183.8884 ns 163.0123 ns 13,550.879 ns 13,518.123 ns 14,024.919 ns - - - -
BitArrayRightShift Empty 2048 824.819 ns 7.8233 ns 6.9352 ns 820.901 ns 819.950 ns 839.827 ns - - - -
BitArrayLeftShift Empty 2048 822.785 ns 4.6165 ns 4.0924 ns 820.496 ns 820.346 ns 832.017 ns - - - -
BitArrayAnd Empty 2048 37.165 ns 0.4928 ns 0.4610 ns 36.929 ns 36.832 ns 38.318 ns - - - -
BitArrayOr Empty 2048 36.962 ns 0.1210 ns 0.1010 ns 36.924 ns 36.898 ns 37.230 ns - - - -
BitArrayXor Empty 2048 37.284 ns 0.2010 ns 0.1781 ns 37.167 ns 37.112 ns 37.660 ns - - - -
BitArraySet Empty 2048 2,564.660 ns 17.1712 ns 15.2218 ns 2,556.569 ns 2,554.882 ns 2,603.764 ns - - - -
BitArraySetLengthGrow Empty 2048 739.023 ns 3.6812 ns 3.2633 ns 738.123 ns 735.028 ns 746.322 ns 0.9912 0.0353 - 6224 B
BitArraySetLengthShrink Empty 2048 509.191 ns 1.6700 ns 1.4804 ns 509.300 ns 506.493 ns 511.770 ns 0.3350 0.0041 - 2104 B
BitArrayCopyToIntArray Empty 2048 40.035 ns 0.6834 ns 0.6058 ns 39.725 ns 39.639 ns 41.315 ns - - - -
BitArrayCopyToByteArray Empty 2048 420.972 ns 2.1124 ns 1.9759 ns 420.045 ns 419.669 ns 425.589 ns - - - -
BitArrayCopyToBoolArray Empty 2048 21,253.516 ns 18.6583 ns 14.5672 ns 21,251.567 ns 21,240.336 ns 21,296.298 ns - - - -
BitArrayLengthCtor EnableAVX2=0 4096 24.943 ns 0.2560 ns 0.2270 ns 24.994 ns 24.526 ns 25.289 ns 0.0905 0.0003 - 568 B
BitArrayLengthValueCtor EnableAVX2=0 4096 54.089 ns 0.4373 ns 0.3414 ns 54.176 ns 53.503 ns 54.573 ns 0.0905 0.0002 - 568 B
BitArrayBitArrayCtor EnableAVX2=0 4096 44.726 ns 0.3371 ns 0.2815 ns 44.685 ns 44.332 ns 45.098 ns 0.0904 0.0004 - 568 B
BitArrayBoolArrayCtor EnableAVX2=0 4096 10,761.183 ns 29.5127 ns 26.1622 ns 10,763.511 ns 10,707.034 ns 10,793.647 ns 0.0862 - - 568 B
BitArrayByteArrayCtor EnableAVX2=0 4096 1,004.913 ns 3.1502 ns 2.7926 ns 1,004.381 ns 999.833 ns 1,009.810 ns 0.6585 0.0161 - 4152 B
BitArrayIntArrayCtor EnableAVX2=0 4096 909.927 ns 19.2377 ns 22.1541 ns 908.136 ns 878.797 ns 953.169 ns 2.6141 0.2867 - 16440 B
BitArraySetAll EnableAVX2=0 4096 245.789 ns 0.6849 ns 0.5720 ns 245.573 ns 245.412 ns 247.391 ns - - - -
BitArrayNot EnableAVX2=0 4096 64.482 ns 0.0365 ns 0.0305 ns 64.492 ns 64.420 ns 64.519 ns - - - -
BitArrayGet EnableAVX2=0 4096 27,042.468 ns 14.9473 ns 11.6698 ns 27,041.906 ns 27,026.211 ns 27,065.603 ns - - - -
BitArrayRightShift EnableAVX2=0 4096 1,638.613 ns 7.6888 ns 7.1921 ns 1,635.434 ns 1,629.544 ns 1,655.616 ns - - - -
BitArrayLeftShift EnableAVX2=0 4096 1,644.449 ns 3.4788 ns 3.0839 ns 1,643.378 ns 1,641.734 ns 1,651.493 ns - - - -
BitArrayAnd EnableAVX2=0 4096 69.263 ns 0.7645 ns 0.6777 ns 68.919 ns 68.661 ns 70.328 ns - - - -
BitArrayOr EnableAVX2=0 4096 68.749 ns 0.2725 ns 0.2275 ns 68.670 ns 68.537 ns 69.366 ns - - - -
BitArrayXor EnableAVX2=0 4096 69.623 ns 0.0670 ns 0.0559 ns 69.614 ns 69.551 ns 69.749 ns - - - -
BitArraySet EnableAVX2=0 4096 5,112.500 ns 7.5816 ns 6.3310 ns 5,110.072 ns 5,107.102 ns 5,128.589 ns - - - -
BitArraySetLengthGrow EnableAVX2=0 4096 1,456.046 ns 26.5597 ns 24.8440 ns 1,444.046 ns 1,435.140 ns 1,513.978 ns 1.9649 0.1177 - 12368 B
BitArraySetLengthShrink EnableAVX2=0 4096 1,122.483 ns 7.0405 ns 6.5857 ns 1,124.332 ns 1,109.974 ns 1,130.370 ns 0.9905 0.0136 - 6224 B
BitArrayCopyToIntArray EnableAVX2=0 4096 91.194 ns 1.9874 ns 2.2887 ns 93.137 ns 88.033 ns 93.205 ns - - - -
BitArrayCopyToByteArray EnableAVX2=0 4096 811.959 ns 1.2726 ns 1.0627 ns 811.597 ns 811.012 ns 814.860 ns - - - -
BitArrayCopyToBoolArray EnableAVX2=0 4096 42,479.484 ns 63.6697 ns 56.4415 ns 42,467.672 ns 42,377.072 ns 42,592.154 ns - - - -
BitArrayLengthCtor Empty 4096 24.225 ns 0.4138 ns 0.3870 ns 24.115 ns 23.799 ns 25.116 ns 0.0905 0.0003 - 568 B
BitArrayLengthValueCtor Empty 4096 54.136 ns 0.7736 ns 0.7236 ns 53.885 ns 53.321 ns 55.742 ns 0.0905 0.0002 - 568 B
BitArrayBitArrayCtor Empty 4096 44.954 ns 0.5173 ns 0.4838 ns 44.980 ns 44.221 ns 45.882 ns 0.0905 0.0002 - 568 B
BitArrayBoolArrayCtor Empty 4096 10,758.287 ns 19.4533 ns 17.2449 ns 10,757.555 ns 10,728.635 ns 10,796.677 ns 0.0869 - - 568 B
BitArrayByteArrayCtor Empty 4096 1,004.695 ns 5.0747 ns 4.2376 ns 1,004.900 ns 998.359 ns 1,012.211 ns 0.6598 0.0160 - 4152 B
BitArrayIntArrayCtor Empty 4096 928.248 ns 17.9056 ns 20.6202 ns 929.384 ns 882.560 ns 953.763 ns 2.6164 0.2875 - 16440 B
BitArraySetAll Empty 4096 246.517 ns 1.2905 ns 1.2071 ns 245.915 ns 245.490 ns 248.902 ns - - - -
BitArrayNot Empty 4096 60.983 ns 0.0522 ns 0.0436 ns 60.980 ns 60.916 ns 61.096 ns - - - -
BitArrayGet Empty 4096 27,042.840 ns 13.1940 ns 11.0176 ns 27,045.242 ns 27,027.487 ns 27,060.727 ns - - - -
BitArrayRightShift Empty 4096 1,638.295 ns 5.8726 ns 5.2059 ns 1,636.033 ns 1,633.404 ns 1,647.806 ns - - - -
BitArrayLeftShift Empty 4096 1,635.380 ns 0.7882 ns 0.6582 ns 1,635.431 ns 1,634.143 ns 1,636.661 ns - - - -
BitArrayAnd Empty 4096 68.762 ns 0.0584 ns 0.0488 ns 68.765 ns 68.666 ns 68.829 ns - - - -
BitArrayOr Empty 4096 70.834 ns 0.0499 ns 0.0416 ns 70.834 ns 70.778 ns 70.904 ns - - - -
BitArrayXor Empty 4096 69.594 ns 0.0543 ns 0.0453 ns 69.589 ns 69.524 ns 69.695 ns - - - -
BitArraySet Empty 4096 5,107.093 ns 1.8708 ns 1.4606 ns 5,106.854 ns 5,104.951 ns 5,109.705 ns - - - -
BitArraySetLengthGrow Empty 4096 1,449.628 ns 13.0162 ns 12.1753 ns 1,448.210 ns 1,431.225 ns 1,469.934 ns 1.9650 0.1173 - 12368 B
BitArraySetLengthShrink Empty 4096 1,125.594 ns 11.0328 ns 10.3201 ns 1,123.938 ns 1,109.650 ns 1,149.188 ns 0.9892 0.0135 - 6224 B
BitArrayCopyToIntArray Empty 4096 71.450 ns 0.0341 ns 0.0266 ns 71.446 ns 71.413 ns 71.500 ns - - - -
BitArrayCopyToByteArray Empty 4096 812.343 ns 1.8966 ns 1.5838 ns 811.725 ns 810.902 ns 816.389 ns - - - -
BitArrayCopyToBoolArray Empty 4096 42,606.029 ns 242.8932 ns 202.8268 ns 42,505.352 ns 42,437.093 ns 43,034.062 ns - - - -
BitArrayLengthCtor EnableAVX2=0 8192 42.058 ns 0.9068 ns 0.8039 ns 42.267 ns 39.703 ns 43.035 ns 0.1721 0.0013 - 1080 B
BitArrayLengthValueCtor EnableAVX2=0 8192 103.158 ns 1.1026 ns 1.0314 ns 102.933 ns 101.533 ns 105.230 ns 0.1721 0.0013 - 1080 B
BitArrayBitArrayCtor EnableAVX2=0 8192 67.452 ns 0.8085 ns 0.7563 ns 67.545 ns 65.655 ns 68.942 ns 0.1721 0.0014 - 1080 B
BitArrayBoolArrayCtor EnableAVX2=0 8192 27,143.884 ns 81.0354 ns 75.8006 ns 27,104.040 ns 27,079.679 ns 27,303.282 ns 0.1083 - - 1080 B
BitArrayByteArrayCtor EnableAVX2=0 8192 1,996.612 ns 10.7141 ns 10.0220 ns 2,001.348 ns 1,980.138 ns 2,014.056 ns 1.3086 0.0698 - 8248 B
BitArrayIntArrayCtor EnableAVX2=0 8192 1,967.265 ns 41.4518 ns 47.7359 ns 1,956.368 ns 1,905.335 ns 2,081.357 ns 5.2012 1.0324 - 32824 B
BitArraySetAll EnableAVX2=0 8192 487.738 ns 0.1937 ns 0.1512 ns 487.750 ns 487.508 ns 487.991 ns - - - -
BitArrayNot EnableAVX2=0 8192 121.319 ns 0.1178 ns 0.0983 ns 121.297 ns 121.233 ns 121.542 ns - - - -
BitArrayGet EnableAVX2=0 8192 54,094.839 ns 35.4720 ns 31.4450 ns 54,091.760 ns 54,051.146 ns 54,155.990 ns - - - -
BitArrayRightShift EnableAVX2=0 8192 3,258.493 ns 3.4474 ns 2.6915 ns 3,259.271 ns 3,251.222 ns 3,260.602 ns - - - -
BitArrayLeftShift EnableAVX2=0 8192 3,269.777 ns 21.0839 ns 17.6060 ns 3,260.678 ns 3,258.166 ns 3,305.293 ns - - - -
BitArrayAnd EnableAVX2=0 8192 131.915 ns 0.0639 ns 0.0499 ns 131.909 ns 131.828 ns 131.990 ns - - - -
BitArrayOr EnableAVX2=0 8192 129.633 ns 1.4106 ns 1.1779 ns 129.303 ns 128.720 ns 132.962 ns - - - -
BitArrayXor EnableAVX2=0 8192 132.289 ns 0.2198 ns 0.1948 ns 132.190 ns 132.102 ns 132.675 ns - - - -
BitArraySet EnableAVX2=0 8192 10,252.361 ns 77.2962 ns 64.5459 ns 10,217.137 ns 10,205.103 ns 10,423.192 ns - - - -
BitArraySetLengthGrow EnableAVX2=0 8192 2,829.570 ns 37.7820 ns 33.4927 ns 2,829.119 ns 2,766.110 ns 2,896.760 ns 3.9112 0.2281 - 24656 B
BitArraySetLengthShrink EnableAVX2=0 8192 2,255.208 ns 10.7318 ns 9.5134 ns 2,254.336 ns 2,233.305 ns 2,272.833 ns 1.9624 0.0806 - 12368 B
BitArrayCopyToIntArray EnableAVX2=0 8192 203.696 ns 3.6085 ns 3.3754 ns 201.151 ns 200.892 ns 208.266 ns - - - -
BitArrayCopyToByteArray EnableAVX2=0 8192 1,597.308 ns 2.6723 ns 2.0864 ns 1,597.455 ns 1,593.071 ns 1,600.141 ns - - - -
BitArrayCopyToBoolArray EnableAVX2=0 8192 84,916.660 ns 143.6778 ns 119.9775 ns 84,879.280 ns 84,815.965 ns 85,252.649 ns - - - -
BitArrayLengthCtor Empty 8192 41.975 ns 0.9068 ns 1.0079 ns 42.303 ns 40.033 ns 43.449 ns 0.1720 0.0013 - 1080 B
BitArrayLengthValueCtor Empty 8192 103.601 ns 0.9491 ns 0.8413 ns 103.780 ns 101.542 ns 105.206 ns 0.1718 0.0013 - 1080 B
BitArrayBitArrayCtor Empty 8192 67.595 ns 0.8203 ns 0.7673 ns 67.494 ns 66.644 ns 69.710 ns 0.1719 0.0012 - 1080 B
BitArrayBoolArrayCtor Empty 8192 27,126.530 ns 92.7143 ns 86.7250 ns 27,083.110 ns 27,043.707 ns 27,310.683 ns 0.1081 - - 1080 B
BitArrayByteArrayCtor Empty 8192 1,995.898 ns 14.7199 ns 13.0488 ns 1,994.954 ns 1,977.047 ns 2,024.342 ns 1.3094 0.0714 - 8248 B
BitArrayIntArrayCtor Empty 8192 1,958.076 ns 37.6469 ns 35.2149 ns 1,964.639 ns 1,902.781 ns 2,014.283 ns 5.2070 1.0368 - 32824 B
BitArraySetAll Empty 8192 488.820 ns 1.8209 ns 1.5205 ns 487.954 ns 487.476 ns 491.874 ns - - - -
BitArrayNot Empty 8192 114.433 ns 0.8068 ns 0.7152 ns 114.003 ns 113.882 ns 116.138 ns - - - -
BitArrayGet Empty 8192 54,118.423 ns 71.4417 ns 59.6571 ns 54,102.365 ns 54,064.583 ns 54,271.832 ns - - - -
BitArrayRightShift Empty 8192 3,264.977 ns 9.9392 ns 8.2997 ns 3,261.170 ns 3,258.645 ns 3,282.752 ns - - - -
BitArrayLeftShift Empty 8192 3,314.999 ns 56.1723 ns 52.5436 ns 3,293.967 ns 3,257.803 ns 3,408.492 ns - - - -
BitArrayAnd Empty 8192 130.339 ns 1.2531 ns 1.1108 ns 129.774 ns 129.613 ns 132.823 ns - - - -
BitArrayOr Empty 8192 135.917 ns 0.1072 ns 0.0895 ns 135.892 ns 135.819 ns 136.147 ns - - - -
BitArrayXor Empty 8192 130.151 ns 0.4828 ns 0.4280 ns 129.931 ns 129.819 ns 131.015 ns - - - -
BitArraySet Empty 8192 10,210.772 ns 4.8107 ns 4.0172 ns 10,209.485 ns 10,206.066 ns 10,218.125 ns - - - -
BitArraySetLengthGrow Empty 8192 2,818.888 ns 27.1494 ns 22.6710 ns 2,818.295 ns 2,763.855 ns 2,859.092 ns 3.9119 0.2268 - 24656 B
BitArraySetLengthShrink Empty 8192 2,256.274 ns 16.3628 ns 15.3058 ns 2,253.880 ns 2,235.920 ns 2,291.555 ns 1.9658 0.0812 - 12368 B
BitArrayCopyToIntArray Empty 8192 126.904 ns 6.4628 ns 7.4426 ns 122.284 ns 119.468 ns 135.905 ns - - - -
BitArrayCopyToByteArray Empty 8192 1,599.232 ns 3.8906 ns 3.4490 ns 1,597.749 ns 1,595.795 ns 1,605.897 ns - - - -
BitArrayCopyToBoolArray Empty 8192 85,086.069 ns 342.7777 ns 303.8635 ns 84,885.743 ns 84,838.209 ns 85,668.243 ns - - - -
Method EnvironmentVariables Size Mean Error StdDev Median Min Max Gen 0 Gen 1 Gen 2 Allocated
BitArrayLengthCtor EnableAVX2=0 16384 73.22 ns 2.185 ns 2.517 ns 73.45 ns 70.22 ns 78.00 ns 0.3352 0.0050 - 2104 B
BitArrayLengthValueCtor EnableAVX2=0 16384 202.59 ns 1.532 ns 1.358 ns 202.40 ns 200.59 ns 205.48 ns 0.3351 0.0049 - 2104 B
BitArrayBitArrayCtor EnableAVX2=0 16384 112.21 ns 2.278 ns 2.623 ns 112.17 ns 107.65 ns 117.34 ns 0.3351 0.0049 - 2104 B
BitArrayBoolArrayCtor EnableAVX2=0 16384 58,807.13 ns 45.981 ns 35.899 ns 58,802.02 ns 58,761.04 ns 58,881.32 ns 0.2350 - - 2104 B
BitArrayByteArrayCtor EnableAVX2=0 16384 3,976.94 ns 33.975 ns 28.371 ns 3,968.51 ns 3,941.41 ns 4,052.08 ns 2.6161 0.2854 - 16440 B
BitArrayIntArrayCtor EnableAVX2=0 16384 4,058.84 ns 76.119 ns 71.202 ns 4,070.93 ns 3,953.38 ns 4,144.40 ns 10.4115 3.4653 - 65592 B
BitArraySetAll EnableAVX2=0 16384 973.30 ns 2.349 ns 2.082 ns 972.25 ns 971.32 ns 977.50 ns - - - -
BitArrayNot EnableAVX2=0 16384 237.50 ns 2.489 ns 2.329 ns 236.02 ns 235.85 ns 243.14 ns - - - -
BitArrayGet EnableAVX2=0 16384 108,181.48 ns 50.932 ns 39.764 ns 108,190.98 ns 108,111.80 ns 108,252.68 ns - - - -
BitArrayRightShift EnableAVX2=0 16384 6,518.36 ns 11.283 ns 10.002 ns 6,513.63 ns 6,510.47 ns 6,543.98 ns - - - -
BitArrayLeftShift EnableAVX2=0 16384 6,520.48 ns 6.610 ns 5.860 ns 6,519.62 ns 6,514.54 ns 6,532.28 ns - - - -
BitArrayAnd EnableAVX2=0 16384 285.13 ns 3.139 ns 2.782 ns 283.76 ns 283.34 ns 291.20 ns - - - -
BitArrayOr EnableAVX2=0 16384 287.33 ns 0.331 ns 0.277 ns 287.29 ns 287.05 ns 288.12 ns - - - -
BitArrayXor EnableAVX2=0 16384 288.25 ns 1.119 ns 0.992 ns 287.82 ns 287.40 ns 290.80 ns - - - -
BitArraySet EnableAVX2=0 16384 20,454.90 ns 70.031 ns 62.081 ns 20,428.39 ns 20,406.44 ns 20,601.03 ns - - - -
BitArraySetLengthGrow EnableAVX2=0 16384 5,923.57 ns 48.390 ns 45.264 ns 5,924.87 ns 5,816.83 ns 5,979.59 ns 7.7888 1.5388 - 49232 B
BitArraySetLengthShrink EnableAVX2=0 16384 4,420.80 ns 35.840 ns 31.771 ns 4,412.18 ns 4,373.31 ns 4,471.05 ns 3.9163 0.1073 - 24656 B
BitArrayCopyToIntArray EnableAVX2=0 16384 404.70 ns 1.657 ns 1.550 ns 403.67 ns 403.47 ns 408.03 ns - - - -
BitArrayCopyToByteArray EnableAVX2=0 16384 3,190.90 ns 21.178 ns 18.774 ns 3,183.27 ns 3,170.81 ns 3,232.92 ns - - - -
BitArrayCopyToBoolArray EnableAVX2=0 16384 169,795.21 ns 132.262 ns 117.247 ns 169,761.79 ns 169,690.08 ns 170,059.24 ns - - - -
BitArrayLengthCtor Empty 16384 74.45 ns 1.503 ns 1.406 ns 74.44 ns 70.23 ns 75.92 ns 0.3351 0.0050 - 2104 B
BitArrayLengthValueCtor Empty 16384 204.11 ns 2.339 ns 2.188 ns 204.89 ns 199.43 ns 207.66 ns 0.3348 0.0050 - 2104 B
BitArrayBitArrayCtor Empty 16384 112.57 ns 2.292 ns 2.354 ns 113.27 ns 106.29 ns 114.45 ns 0.3353 0.0049 - 2104 B
BitArrayBoolArrayCtor Empty 16384 58,787.67 ns 45.323 ns 37.847 ns 58,779.42 ns 58,742.55 ns 58,872.86 ns 0.2350 - - 2104 B
BitArrayByteArrayCtor Empty 16384 3,955.60 ns 20.457 ns 19.136 ns 3,948.36 ns 3,933.98 ns 3,996.98 ns 2.6149 0.2888 - 16440 B
BitArrayIntArrayCtor Empty 16384 4,045.03 ns 76.911 ns 82.294 ns 4,020.92 ns 3,870.10 ns 4,162.30 ns 10.4038 3.4524 - 65592 B
BitArraySetAll Empty 16384 972.06 ns 1.259 ns 1.051 ns 971.79 ns 969.86 ns 973.96 ns - - - -
BitArrayNot Empty 16384 237.24 ns 0.387 ns 0.343 ns 237.11 ns 236.94 ns 238.00 ns - - - -
BitArrayGet Empty 16384 108,216.04 ns 51.743 ns 45.869 ns 108,222.78 ns 108,140.13 ns 108,315.09 ns - - - -
BitArrayRightShift Empty 16384 6,516.34 ns 13.563 ns 10.589 ns 6,512.78 ns 6,509.40 ns 6,547.30 ns - - - -
BitArrayLeftShift Empty 16384 6,514.67 ns 2.178 ns 1.819 ns 6,514.47 ns 6,512.05 ns 6,517.50 ns - - - -
BitArrayAnd Empty 16384 297.80 ns 2.796 ns 2.615 ns 296.48 ns 295.70 ns 303.68 ns - - - -
BitArrayOr Empty 16384 294.97 ns 0.413 ns 0.344 ns 294.96 ns 294.55 ns 295.87 ns - - - -
BitArrayXor Empty 16384 296.68 ns 0.354 ns 0.295 ns 296.57 ns 296.41 ns 297.41 ns - - - -
BitArraySet Empty 16384 20,425.02 ns 39.409 ns 32.908 ns 20,414.65 ns 20,401.08 ns 20,506.33 ns - - - -
BitArraySetLengthGrow Empty 16384 5,915.25 ns 56.534 ns 52.882 ns 5,909.28 ns 5,826.24 ns 6,010.82 ns 7.7921 1.5352 - 49232 B
BitArraySetLengthShrink Empty 16384 4,424.08 ns 39.411 ns 34.937 ns 4,424.19 ns 4,370.16 ns 4,496.49 ns 3.9161 0.1573 - 24656 B
BitArrayCopyToIntArray Empty 16384 405.87 ns 0.708 ns 0.553 ns 405.67 ns 405.35 ns 406.92 ns - - - -
BitArrayCopyToByteArray Empty 16384 3,183.10 ns 8.565 ns 7.152 ns 3,180.69 ns 3,175.08 ns 3,199.77 ns - - - -
BitArrayCopyToBoolArray Empty 16384 169,880.58 ns 402.275 ns 335.918 ns 169,760.87 ns 169,652.31 ns 170,754.14 ns - - - -
BitArrayLengthCtor EnableAVX2=0 32768 141.90 ns 2.386 ns 2.232 ns 141.99 ns 137.13 ns 145.95 ns 0.6614 0.0199 - 4152 B
BitArrayLengthValueCtor EnableAVX2=0 32768 413.03 ns 3.960 ns 3.704 ns 414.70 ns 405.43 ns 416.94 ns 0.6604 0.0199 - 4152 B
BitArrayBitArrayCtor EnableAVX2=0 32768 203.55 ns 3.984 ns 3.913 ns 205.06 ns 194.72 ns 207.67 ns 0.6610 0.0199 - 4152 B
BitArrayBoolArrayCtor EnableAVX2=0 32768 122,300.69 ns 41.446 ns 36.741 ns 122,294.95 ns 122,222.02 ns 122,358.54 ns 0.4883 - - 4152 B
BitArrayByteArrayCtor EnableAVX2=0 32768 7,935.68 ns 37.857 ns 33.559 ns 7,922.13 ns 7,893.10 ns 8,022.27 ns 5.1925 1.0132 - 32824 B
BitArrayIntArrayCtor EnableAVX2=0 32768 8,556.95 ns 122.076 ns 114.190 ns 8,561.11 ns 8,387.06 ns 8,784.19 ns 41.6334 41.6334 41.6334 131128 B
BitArraySetAll EnableAVX2=0 32768 1,975.23 ns 2.992 ns 2.498 ns 1,974.34 ns 1,973.49 ns 1,982.63 ns - - - -
BitArrayNot EnableAVX2=0 32768 485.37 ns 0.677 ns 0.600 ns 485.19 ns 484.77 ns 486.69 ns - - - -
BitArrayGet EnableAVX2=0 32768 217,064.68 ns 932.182 ns 826.355 ns 216,579.02 ns 216,331.93 ns 218,557.53 ns - - - -
BitArrayRightShift EnableAVX2=0 32768 13,071.49 ns 40.930 ns 38.286 ns 13,048.73 ns 13,039.13 ns 13,155.35 ns - - - -
BitArrayLeftShift EnableAVX2=0 32768 13,042.40 ns 10.712 ns 8.364 ns 13,040.40 ns 13,033.83 ns 13,063.86 ns - - - -
BitArrayAnd EnableAVX2=0 32768 881.71 ns 4.158 ns 3.889 ns 881.62 ns 876.12 ns 888.20 ns - - - -
BitArrayOr EnableAVX2=0 32768 877.49 ns 3.486 ns 3.260 ns 876.41 ns 872.19 ns 883.71 ns - - - -
BitArrayXor EnableAVX2=0 32768 878.43 ns 4.781 ns 4.238 ns 877.69 ns 873.74 ns 888.16 ns - - - -
BitArraySet EnableAVX2=0 32768 40,874.32 ns 19.026 ns 14.854 ns 40,872.41 ns 40,851.06 ns 40,901.21 ns - - - -
BitArraySetLengthGrow EnableAVX2=0 32768 12,043.30 ns 122.324 ns 114.421 ns 12,075.61 ns 11,856.89 ns 12,295.10 ns 15.5889 5.1482 - 98384 B
BitArraySetLengthShrink EnableAVX2=0 32768 9,028.45 ns 88.287 ns 78.264 ns 9,004.20 ns 8,891.34 ns 9,150.88 ns 7.7807 1.5271 - 49232 B
BitArrayCopyToIntArray EnableAVX2=0 32768 826.80 ns 2.311 ns 1.930 ns 825.99 ns 825.21 ns 832.30 ns - - - -
BitArrayCopyToByteArray EnableAVX2=0 32768 6,346.04 ns 56.549 ns 52.896 ns 6,316.57 ns 6,310.47 ns 6,448.83 ns - - - -
BitArrayCopyToBoolArray EnableAVX2=0 32768 340,893.22 ns 2,345.924 ns 2,194.379 ns 339,811.01 ns 339,397.15 ns 345,543.07 ns - - - -
BitArrayLengthCtor Empty 32768 140.04 ns 4.224 ns 4.864 ns 142.24 ns 132.20 ns 146.19 ns 0.6614 0.0198 - 4152 B
BitArrayLengthValueCtor Empty 32768 411.26 ns 4.193 ns 3.922 ns 410.80 ns 404.81 ns 418.19 ns 0.6609 0.0197 - 4152 B
BitArrayBitArrayCtor Empty 32768 202.14 ns 3.754 ns 3.511 ns 203.35 ns 195.80 ns 208.23 ns 0.6618 0.0198 - 4152 B
BitArrayBoolArrayCtor Empty 32768 122,771.62 ns 510.556 ns 426.337 ns 122,878.59 ns 122,321.65 ns 123,576.43 ns 0.4921 - - 4152 B
BitArrayByteArrayCtor Empty 32768 7,921.34 ns 38.822 ns 36.314 ns 7,917.69 ns 7,874.05 ns 7,998.48 ns 5.1925 1.0132 - 32824 B
BitArrayIntArrayCtor Empty 32768 8,563.13 ns 83.155 ns 77.783 ns 8,597.61 ns 8,388.49 ns 8,645.37 ns 41.6327 41.6327 41.6327 131128 B
BitArraySetAll Empty 32768 1,982.46 ns 13.450 ns 12.581 ns 1,975.85 ns 1,973.47 ns 2,006.87 ns - - - -
BitArrayNot Empty 32768 489.55 ns 0.241 ns 0.188 ns 489.56 ns 489.18 ns 489.90 ns - - - -
BitArrayGet Empty 32768 216,580.78 ns 122.936 ns 95.980 ns 216,604.73 ns 216,388.89 ns 216,763.54 ns - - - -
BitArrayRightShift Empty 32768 13,049.79 ns 27.940 ns 23.331 ns 13,042.97 ns 13,033.41 ns 13,119.86 ns - - - -
BitArrayLeftShift Empty 32768 13,037.47 ns 6.839 ns 6.063 ns 13,035.85 ns 13,029.58 ns 13,052.77 ns - - - -
BitArrayAnd Empty 32768 879.44 ns 3.787 ns 3.542 ns 879.26 ns 874.36 ns 885.80 ns - - - -
BitArrayOr Empty 32768 878.62 ns 1.606 ns 1.424 ns 878.22 ns 876.88 ns 881.48 ns - - - -
BitArrayXor Empty 32768 880.62 ns 3.496 ns 2.919 ns 881.16 ns 876.61 ns 885.49 ns - - - -
BitArraySet Empty 32768 41,154.92 ns 154.037 ns 144.086 ns 41,099.79 ns 41,037.76 ns 41,472.49 ns - - - -
BitArraySetLengthGrow Empty 32768 12,005.66 ns 142.655 ns 133.439 ns 11,963.86 ns 11,797.94 ns 12,244.50 ns 15.6015 5.1692 - 98384 B
BitArraySetLengthShrink Empty 32768 8,995.91 ns 60.756 ns 53.858 ns 8,987.16 ns 8,912.47 ns 9,093.82 ns 7.8125 1.5553 - 49232 B
BitArrayCopyToIntArray Empty 32768 827.20 ns 3.959 ns 3.509 ns 825.95 ns 821.52 ns 835.07 ns - - - -
BitArrayCopyToByteArray Empty 32768 6,317.30 ns 12.958 ns 11.487 ns 6,312.38 ns 6,307.23 ns 6,341.02 ns - - - -
BitArrayCopyToBoolArray Empty 32768 340,333.39 ns 1,165.824 ns 1,033.472 ns 339,880.69 ns 339,582.92 ns 343,153.19 ns - - - -
BitArrayLengthCtor EnableAVX2=0 65536 289.22 ns 5.539 ns 5.181 ns 288.24 ns 278.95 ns 295.49 ns 1.3137 0.0762 - 8248 B
BitArrayLengthValueCtor EnableAVX2=0 65536 828.26 ns 5.666 ns 5.023 ns 827.10 ns 822.14 ns 837.46 ns 1.3125 0.0758 - 8248 B
BitArrayBitArrayCtor EnableAVX2=0 65536 420.02 ns 6.123 ns 5.727 ns 419.42 ns 411.63 ns 429.35 ns 1.3129 0.0756 - 8248 B
BitArrayBoolArrayCtor EnableAVX2=0 65536 248,292.52 ns 450.478 ns 399.337 ns 248,164.53 ns 247,948.21 ns 249,279.07 ns 0.9921 - - 8248 B
BitArrayByteArrayCtor EnableAVX2=0 65536 16,097.76 ns 83.697 ns 74.195 ns 16,105.17 ns 16,007.38 ns 16,281.83 ns 10.4060 3.4044 - 65592 B
BitArrayIntArrayCtor EnableAVX2=0 65536 18,024.49 ns 343.014 ns 352.250 ns 17,919.15 ns 17,542.74 ns 18,774.25 ns 83.2627 83.2627 83.2627 262200 B
BitArraySetAll EnableAVX2=0 65536 4,186.87 ns 9.231 ns 8.183 ns 4,185.92 ns 4,173.30 ns 4,201.97 ns - - - -
BitArrayNot EnableAVX2=0 65536 1,065.65 ns 0.955 ns 0.745 ns 1,065.36 ns 1,064.72 ns 1,066.92 ns - - - -
BitArrayGet EnableAVX2=0 65536 436,481.45 ns 4,671.050 ns 4,140.764 ns 433,767.71 ns 433,200.87 ns 443,225.69 ns - - - 1 B
BitArrayRightShift EnableAVX2=0 65536 26,046.44 ns 46.294 ns 38.658 ns 26,036.73 ns 25,981.43 ns 26,145.14 ns - - - -
BitArrayLeftShift EnableAVX2=0 65536 26,033.61 ns 10.714 ns 9.498 ns 26,035.77 ns 26,015.99 ns 26,044.93 ns - - - -
BitArrayAnd EnableAVX2=0 65536 1,762.31 ns 5.134 ns 4.551 ns 1,763.69 ns 1,754.24 ns 1,768.26 ns - - - -
BitArrayOr EnableAVX2=0 65536 1,755.30 ns 5.125 ns 4.794 ns 1,755.61 ns 1,747.32 ns 1,760.95 ns - - - -
BitArrayXor EnableAVX2=0 65536 1,756.28 ns 11.720 ns 10.963 ns 1,754.35 ns 1,737.95 ns 1,778.49 ns - - - -
BitArraySet EnableAVX2=0 65536 81,897.86 ns 255.336 ns 238.842 ns 81,800.13 ns 81,682.81 ns 82,442.71 ns - - - -
BitArraySetLengthGrow EnableAVX2=0 65536 27,237.47 ns 325.666 ns 304.628 ns 27,216.74 ns 26,812.23 ns 27,787.34 ns 41.6306 41.6306 41.6306 196688 B
BitArraySetLengthShrink EnableAVX2=0 65536 18,398.75 ns 726.756 ns 777.621 ns 18,076.46 ns 17,674.50 ns 20,548.08 ns 15.5896 3.0471 - 98384 B
BitArrayCopyToIntArray EnableAVX2=0 65536 1,621.72 ns 1.623 ns 1.355 ns 1,621.99 ns 1,619.84 ns 1,624.11 ns - - - -
BitArrayCopyToByteArray EnableAVX2=0 65536 12,605.88 ns 40.223 ns 35.657 ns 12,588.73 ns 12,582.62 ns 12,699.81 ns - - - -
BitArrayCopyToBoolArray EnableAVX2=0 65536 680,041.66 ns 2,420.568 ns 2,021.284 ns 679,097.55 ns 678,833.97 ns 685,472.28 ns - - - -
BitArrayLengthCtor Empty 65536 288.46 ns 5.814 ns 6.221 ns 286.52 ns 279.44 ns 303.55 ns 1.3132 0.0767 - 8248 B
BitArrayLengthValueCtor Empty 65536 829.89 ns 3.705 ns 3.466 ns 828.62 ns 825.98 ns 836.86 ns 1.3137 0.0767 - 8248 B
BitArrayBitArrayCtor Empty 65536 415.27 ns 5.473 ns 5.120 ns 416.43 ns 405.68 ns 422.78 ns 1.3133 0.0759 - 8248 B
BitArrayBoolArrayCtor Empty 65536 248,357.52 ns 999.843 ns 834.914 ns 248,062.80 ns 247,893.75 ns 250,802.18 ns 0.9921 - - 8248 B
BitArrayByteArrayCtor Empty 65536 15,982.53 ns 86.370 ns 76.565 ns 15,976.13 ns 15,878.10 ns 16,111.27 ns 10.3637 3.4334 - 65592 B
BitArrayIntArrayCtor Empty 65536 17,745.23 ns 233.146 ns 218.085 ns 17,811.30 ns 17,466.10 ns 18,230.06 ns 83.2630 83.2630 83.2630 262200 B
BitArraySetAll Empty 65536 4,152.48 ns 24.999 ns 23.384 ns 4,145.81 ns 4,130.33 ns 4,215.21 ns - - - -
BitArrayNot Empty 65536 1,012.68 ns 1.975 ns 1.649 ns 1,012.19 ns 1,009.95 ns 1,016.32 ns - - - -
BitArrayGet Empty 65536 433,370.45 ns 211.428 ns 176.552 ns 433,386.32 ns 433,026.18 ns 433,764.53 ns - - - 1 B
BitArrayRightShift Empty 65536 26,038.45 ns 25.482 ns 21.279 ns 26,032.43 ns 26,019.33 ns 26,087.72 ns - - - -
BitArrayLeftShift Empty 65536 26,401.27 ns 513.166 ns 480.016 ns 26,123.98 ns 26,039.73 ns 27,558.32 ns - - - -
BitArrayAnd Empty 65536 1,678.56 ns 9.054 ns 7.561 ns 1,679.98 ns 1,667.04 ns 1,692.09 ns - - - -
BitArrayOr Empty 65536 1,675.33 ns 5.950 ns 5.275 ns 1,675.85 ns 1,667.04 ns 1,684.06 ns - - - -
BitArrayXor Empty 65536 1,678.05 ns 7.890 ns 6.994 ns 1,680.76 ns 1,661.11 ns 1,685.66 ns - - - -
BitArraySet Empty 65536 81,746.89 ns 58.326 ns 48.705 ns 81,734.93 ns 81,692.61 ns 81,873.99 ns - - - -
BitArraySetLengthGrow Empty 65536 27,084.21 ns 300.684 ns 266.549 ns 26,982.73 ns 26,769.52 ns 27,697.61 ns 41.6308 41.6308 41.6308 196688 B
BitArraySetLengthShrink Empty 65536 17,857.25 ns 107.039 ns 94.887 ns 17,853.82 ns 17,703.49 ns 18,068.25 ns 15.5891 3.0891 - 98384 B
BitArrayCopyToIntArray Empty 65536 1,612.25 ns 0.989 ns 0.876 ns 1,611.97 ns 1,610.62 ns 1,614.07 ns - - - -
BitArrayCopyToByteArray Empty 65536 12,626.91 ns 58.583 ns 51.933 ns 12,597.02 ns 12,586.51 ns 12,711.86 ns - - - -
BitArrayCopyToBoolArray Empty 65536 680,082.41 ns 1,831.269 ns 1,712.970 ns 679,174.18 ns 678,715.22 ns 683,735.05 ns - - - 1 B
BitArrayLengthCtor EnableAVX2=0 131072 536.69 ns 10.781 ns 10.588 ns 535.94 ns 520.10 ns 554.63 ns 2.6161 0.2902 - 16440 B
BitArrayLengthValueCtor EnableAVX2=0 131072 1,613.93 ns 43.721 ns 50.349 ns 1,592.94 ns 1,555.53 ns 1,724.69 ns 2.6173 0.2845 - 16440 B
BitArrayBitArrayCtor EnableAVX2=0 131072 922.51 ns 18.305 ns 20.346 ns 921.74 ns 894.15 ns 969.30 ns 2.6169 0.2899 - 16440 B
BitArrayBoolArrayCtor EnableAVX2=0 131072 497,464.83 ns 1,710.897 ns 1,428.676 ns 496,871.09 ns 496,554.69 ns 500,733.40 ns 1.9531 - - 16440 B
BitArrayByteArrayCtor EnableAVX2=0 131072 33,117.88 ns 385.591 ns 360.682 ns 32,965.68 ns 32,784.46 ns 33,816.23 ns 41.6226 41.6226 41.6226 131128 B
BitArrayIntArrayCtor EnableAVX2=0 131072 81,496.27 ns 3,992.460 ns 4,597.723 ns 82,695.93 ns 73,147.08 ns 89,672.79 ns 103.5448 103.5448 103.5448 525131 B
BitArraySetAll EnableAVX2=0 131072 8,399.55 ns 44.532 ns 37.186 ns 8,384.83 ns 8,366.59 ns 8,503.37 ns - - - -
BitArrayNot EnableAVX2=0 131072 2,143.38 ns 6.720 ns 6.286 ns 2,141.16 ns 2,134.54 ns 2,156.17 ns - - - -
BitArrayGet EnableAVX2=0 131072 867,117.27 ns 478.886 ns 373.883 ns 867,014.41 ns 866,705.90 ns 867,784.38 ns - - - -
BitArrayRightShift EnableAVX2=0 131072 52,076.99 ns 58.891 ns 49.177 ns 52,069.17 ns 52,035.30 ns 52,217.21 ns - - - -
BitArrayLeftShift EnableAVX2=0 131072 52,051.87 ns 52.079 ns 40.660 ns 52,060.45 ns 51,939.97 ns 52,092.67 ns - - - -
BitArrayAnd EnableAVX2=0 131072 3,243.04 ns 16.069 ns 13.419 ns 3,243.64 ns 3,229.06 ns 3,270.31 ns - - - -
BitArrayOr EnableAVX2=0 131072 3,230.96 ns 5.784 ns 4.830 ns 3,231.12 ns 3,225.21 ns 3,243.54 ns - - - -
BitArrayXor EnableAVX2=0 131072 3,241.31 ns 4.628 ns 3.613 ns 3,241.81 ns 3,233.32 ns 3,246.45 ns - - - -
BitArraySet EnableAVX2=0 131072 163,461.07 ns 65.213 ns 50.914 ns 163,472.17 ns 163,386.33 ns 163,546.42 ns - - - -
BitArraySetLengthGrow EnableAVX2=0 131072 50,355.67 ns 571.398 ns 534.486 ns 50,662.99 ns 49,372.31 ns 50,935.50 ns 124.8035 124.8035 124.8035 393296 B
BitArraySetLengthShrink EnableAVX2=0 131072 78,668.39 ns 1,684.229 ns 1,729.579 ns 77,763.53 ns 77,244.90 ns 82,813.40 ns 41.3557 41.3557 41.3557 196688 B
BitArrayCopyToIntArray EnableAVX2=0 131072 3,223.60 ns 5.885 ns 4.914 ns 3,222.69 ns 3,218.53 ns 3,234.85 ns - - - -
BitArrayCopyToByteArray EnableAVX2=0 131072 25,267.57 ns 188.794 ns 167.361 ns 25,192.81 ns 25,159.07 ns 25,726.31 ns - - - -
BitArrayCopyToBoolArray EnableAVX2=0 131072 1,375,365.66 ns 24,130.762 ns 21,391.292 ns 1,362,008.85 ns 1,357,793.75 ns 1,408,183.33 ns - - - -
BitArrayLengthCtor Empty 131072 538.82 ns 10.361 ns 11.516 ns 536.85 ns 521.94 ns 564.61 ns 2.6178 0.2894 - 16440 B
BitArrayLengthValueCtor Empty 131072 1,576.40 ns 11.775 ns 10.438 ns 1,574.01 ns 1,558.08 ns 1,596.49 ns 2.6157 0.2885 - 16440 B
BitArrayBitArrayCtor Empty 131072 901.58 ns 14.026 ns 13.120 ns 898.45 ns 883.01 ns 925.93 ns 2.6177 0.2893 - 16440 B
BitArrayBoolArrayCtor Empty 131072 496,947.30 ns 590.980 ns 461.398 ns 496,854.30 ns 496,553.32 ns 498,344.14 ns 1.9531 - - 16440 B
BitArrayByteArrayCtor Empty 131072 32,900.06 ns 63.118 ns 55.953 ns 32,902.34 ns 32,794.42 ns 32,995.45 ns 41.5356 41.5356 41.5356 131128 B
BitArrayIntArrayCtor Empty 131072 80,845.46 ns 3,335.862 ns 3,841.584 ns 79,804.52 ns 73,896.15 ns 88,764.47 ns 108.9199 108.9199 108.9199 525090 B
BitArraySetAll Empty 131072 8,626.50 ns 77.525 ns 68.724 ns 8,596.23 ns 8,543.66 ns 8,783.35 ns - - - -
BitArrayNot Empty 131072 2,153.90 ns 18.793 ns 17.579 ns 2,151.76 ns 2,136.73 ns 2,187.81 ns - - - -
BitArrayGet Empty 131072 872,213.56 ns 5,936.101 ns 5,552.632 ns 869,906.94 ns 866,598.96 ns 883,721.53 ns - - - -
BitArrayRightShift Empty 131072 52,118.21 ns 98.378 ns 87.210 ns 52,080.65 ns 52,048.88 ns 52,328.04 ns - - - -
BitArrayLeftShift Empty 131072 52,068.75 ns 22.871 ns 17.856 ns 52,072.66 ns 52,038.25 ns 52,100.38 ns - - - -
BitArrayAnd Empty 131072 3,230.86 ns 12.089 ns 10.095 ns 3,228.51 ns 3,217.08 ns 3,253.81 ns - - - -
BitArrayOr Empty 131072 3,250.76 ns 7.199 ns 6.012 ns 3,250.88 ns 3,238.92 ns 3,261.04 ns - - - -
BitArrayXor Empty 131072 3,249.47 ns 13.336 ns 12.474 ns 3,251.48 ns 3,226.07 ns 3,269.72 ns - - - -
BitArraySet Empty 131072 163,575.82 ns 198.097 ns 165.420 ns 163,501.82 ns 163,424.93 ns 163,920.96 ns - - - -
BitArraySetLengthGrow Empty 131072 49,860.72 ns 372.173 ns 348.131 ns 49,754.85 ns 49,438.10 ns 50,637.25 ns 124.8053 124.8053 124.8053 393296 B
BitArraySetLengthShrink Empty 131072 76,444.11 ns 770.695 ns 643.565 ns 76,177.80 ns 75,857.93 ns 77,914.39 ns 41.4634 41.4634 41.4634 196688 B
BitArrayCopyToIntArray Empty 131072 3,221.57 ns 11.552 ns 9.647 ns 3,217.15 ns 3,214.48 ns 3,241.86 ns - - - -
BitArrayCopyToByteArray Empty 131072 25,200.28 ns 10.622 ns 8.870 ns 25,197.16 ns 25,189.60 ns 25,218.62 ns - - - -
BitArrayCopyToBoolArray Empty 131072 1,358,712.82 ns 945.823 ns 789.805 ns 1,358,506.25 ns 1,357,573.96 ns 1,360,305.73 ns - - - -
BitArrayLengthCtor EnableAVX2=0 262144 1,097.68 ns 16.611 ns 13.871 ns 1,104.86 ns 1,071.40 ns 1,110.92 ns 5.2057 1.0375 - 32824 B
BitArrayLengthValueCtor EnableAVX2=0 262144 3,439.79 ns 25.813 ns 24.145 ns 3,425.43 ns 3,417.36 ns 3,487.51 ns 5.2004 1.0264 - 32824 B
BitArrayBitArrayCtor EnableAVX2=0 262144 1,966.01 ns 38.771 ns 38.079 ns 1,960.17 ns 1,897.36 ns 2,022.59 ns 5.2039 1.0392 - 32824 B
BitArrayBoolArrayCtor EnableAVX2=0 262144 996,288.41 ns 3,802.960 ns 3,557.291 ns 995,072.27 ns 992,985.94 ns 1,002,771.88 ns 3.9063 - - 32824 B
BitArrayByteArrayCtor EnableAVX2=0 262144 65,427.20 ns 152.945 ns 127.716 ns 65,434.17 ns 65,209.32 ns 65,698.85 ns 83.0729 83.0729 83.0729 262200 B
BitArrayIntArrayCtor EnableAVX2=0 262144 200,421.34 ns 11,106.567 ns 12,790.340 ns 197,728.05 ns 178,989.26 ns 222,319.94 ns 162.9213 162.9213 162.9213 1049655 B
BitArraySetAll EnableAVX2=0 262144 17,227.95 ns 42.026 ns 37.255 ns 17,211.46 ns 17,182.20 ns 17,310.38 ns - - - -
BitArrayNot EnableAVX2=0 262144 4,350.00 ns 7.290 ns 6.087 ns 4,348.63 ns 4,342.73 ns 4,366.85 ns - - - -
BitArrayGet EnableAVX2=0 262144 1,737,030.21 ns 5,443.469 ns 4,825.494 ns 1,735,128.47 ns 1,733,418.75 ns 1,750,741.67 ns - - - -
BitArrayRightShift EnableAVX2=0 262144 104,246.84 ns 95.565 ns 74.611 ns 104,253.12 ns 104,032.71 ns 104,310.50 ns - - - -
BitArrayLeftShift EnableAVX2=0 262144 104,254.26 ns 99.117 ns 92.714 ns 104,230.21 ns 104,061.04 ns 104,455.38 ns - - - -
BitArrayAnd EnableAVX2=0 262144 9,304.86 ns 73.444 ns 68.700 ns 9,341.15 ns 9,179.17 ns 9,350.34 ns - - - -
BitArrayOr EnableAVX2=0 262144 9,308.70 ns 59.045 ns 52.342 ns 9,326.96 ns 9,161.15 ns 9,342.75 ns - - - -
BitArrayXor EnableAVX2=0 262144 9,327.08 ns 85.519 ns 71.412 ns 9,349.29 ns 9,183.65 ns 9,421.29 ns - - - -
BitArraySet EnableAVX2=0 262144 327,355.30 ns 536.064 ns 475.207 ns 327,134.44 ns 326,648.44 ns 328,217.32 ns - - - -
BitArraySetLengthGrow EnableAVX2=0 262144 122,843.97 ns 2,407.480 ns 2,251.958 ns 123,023.47 ns 120,128.10 ns 126,178.74 ns 249.5079 249.5079 249.5079 786512 B
BitArraySetLengthShrink EnableAVX2=0 262144 75,561.35 ns 469.667 ns 416.347 ns 75,424.89 ns 74,969.26 ns 76,435.19 ns 124.6995 124.6995 124.6995 393296 B
BitArrayCopyToIntArray EnableAVX2=0 262144 7,415.57 ns 72.679 ns 67.984 ns 7,431.82 ns 7,308.61 ns 7,490.86 ns - - - -
BitArrayCopyToByteArray EnableAVX2=0 262144 50,266.03 ns 28.405 ns 23.720 ns 50,267.26 ns 50,225.22 ns 50,305.51 ns - - - -
BitArrayCopyToBoolArray EnableAVX2=0 262144 2,716,176.76 ns 1,845.017 ns 1,540.673 ns 2,715,678.12 ns 2,714,425.00 ns 2,720,387.50 ns - - - -
BitArrayLengthCtor Empty 262144 1,107.50 ns 22.854 ns 25.402 ns 1,108.53 ns 1,069.66 ns 1,145.88 ns 5.2049 1.0383 - 32824 B
BitArrayLengthValueCtor Empty 262144 3,437.95 ns 37.755 ns 35.316 ns 3,453.87 ns 3,377.26 ns 3,476.71 ns 5.2038 1.0271 - 32824 B
BitArrayBitArrayCtor Empty 262144 1,988.19 ns 38.681 ns 41.388 ns 2,012.21 ns 1,893.84 ns 2,026.09 ns 5.2004 1.0338 - 32824 B
BitArrayBoolArrayCtor Empty 262144 993,370.74 ns 573.655 ns 447.872 ns 993,239.45 ns 992,953.12 ns 994,566.41 ns 3.9063 - - 32824 B
BitArrayByteArrayCtor Empty 262144 65,618.60 ns 233.444 ns 194.937 ns 65,659.73 ns 65,273.26 ns 66,017.41 ns 83.0696 83.0696 83.0696 262200 B
BitArrayIntArrayCtor Empty 262144 203,059.14 ns 9,849.805 ns 11,343.050 ns 207,069.20 ns 184,962.20 ns 221,306.85 ns 172.6190 172.6190 172.6190 1049648 B
BitArraySetAll Empty 262144 17,268.23 ns 57.412 ns 53.703 ns 17,251.81 ns 17,210.85 ns 17,413.02 ns - - - -
BitArrayNot Empty 262144 4,332.88 ns 5.993 ns 5.005 ns 4,332.70 ns 4,319.74 ns 4,339.94 ns - - - -
BitArrayGet Empty 262144 1,748,793.89 ns 26,141.818 ns 24,453.073 ns 1,734,973.61 ns 1,734,304.86 ns 1,811,725.69 ns - - - -
BitArrayRightShift Empty 262144 104,637.88 ns 528.740 ns 494.584 ns 104,467.71 ns 104,204.42 ns 105,726.33 ns - - - -
BitArrayLeftShift Empty 262144 104,276.85 ns 65.427 ns 61.200 ns 104,278.62 ns 104,122.58 ns 104,374.83 ns - - - -
BitArrayAnd Empty 262144 9,322.28 ns 74.690 ns 66.211 ns 9,350.56 ns 9,166.71 ns 9,368.93 ns - - - -
BitArrayOr Empty 262144 9,300.56 ns 78.036 ns 60.925 ns 9,325.90 ns 9,169.75 ns 9,330.61 ns - - - -
BitArrayXor Empty 262144 9,327.01 ns 50.230 ns 46.985 ns 9,345.55 ns 9,175.84 ns 9,359.22 ns - - - -
BitArraySet Empty 262144 327,453.25 ns 505.278 ns 447.916 ns 327,285.09 ns 327,079.82 ns 328,604.30 ns - - - -
BitArraySetLengthGrow Empty 262144 123,390.37 ns 2,199.843 ns 2,057.734 ns 123,370.66 ns 120,439.17 ns 127,103.72 ns 249.5229 249.5229 249.5229 786512 B
BitArraySetLengthShrink Empty 262144 75,481.68 ns 258.346 ns 201.700 ns 75,510.52 ns 75,104.38 ns 75,764.43 ns 124.7024 124.7024 124.7024 393296 B
BitArrayCopyToIntArray Empty 262144 7,512.50 ns 118.695 ns 111.028 ns 7,472.41 ns 7,347.51 ns 7,727.68 ns - - - -
BitArrayCopyToByteArray Empty 262144 50,518.79 ns 254.394 ns 212.431 ns 50,568.49 ns 50,263.57 ns 50,797.89 ns - - - -
BitArrayCopyToBoolArray Empty 262144 2,720,612.42 ns 9,434.358 ns 7,878.116 ns 2,717,615.62 ns 2,713,617.71 ns 2,738,452.08 ns - - - -
BitArrayLengthCtor EnableAVX2=0 524288 2,343.73 ns 54.007 ns 62.195 ns 2,347.06 ns 2,241.73 ns 2,422.87 ns 10.4135 3.4649 - 65592 B
BitArrayLengthValueCtor EnableAVX2=0 524288 7,009.16 ns 67.981 ns 63.589 ns 7,030.74 ns 6,882.39 ns 7,070.85 ns 10.3936 3.4368 - 65592 B
BitArrayBitArrayCtor EnableAVX2=0 524288 4,020.48 ns 78.755 ns 84.267 ns 4,016.55 ns 3,870.16 ns 4,160.59 ns 10.4012 3.4516 - 65592 B
BitArrayBoolArrayCtor EnableAVX2=0 524288 1,984,260.68 ns 949.475 ns 741.288 ns 1,984,246.09 ns 1,983,225.00 ns 1,985,971.88 ns 7.8125 - - 65592 B
BitArrayByteArrayCtor EnableAVX2=0 524288 191,404.94 ns 1,300.776 ns 1,086.207 ns 191,396.76 ns 189,191.67 ns 192,864.66 ns 134.2593 134.2593 134.2593 524347 B
BitArrayIntArrayCtor EnableAVX2=0 524288 434,766.90 ns 26,989.793 ns 31,081.486 ns 427,786.20 ns 397,157.81 ns 495,473.09 ns 217.0139 217.0139 217.0139 2097223 B
BitArraySetAll EnableAVX2=0 524288 36,647.49 ns 19.061 ns 15.917 ns 36,652.44 ns 36,613.36 ns 36,670.70 ns - - - -
BitArrayNot EnableAVX2=0 524288 11,788.28 ns 4.427 ns 4.141 ns 11,788.92 ns 11,780.75 ns 11,795.86 ns - - - -
BitArrayGet EnableAVX2=0 524288 3,468,856.98 ns 954.659 ns 745.335 ns 3,468,911.25 ns 3,467,100.00 ns 3,469,883.75 ns - - - -
BitArrayRightShift EnableAVX2=0 524288 208,451.80 ns 191.682 ns 149.653 ns 208,435.62 ns 208,294.33 ns 208,850.83 ns - - - -
BitArrayLeftShift EnableAVX2=0 524288 208,896.60 ns 104.407 ns 92.554 ns 208,879.58 ns 208,707.17 ns 209,072.50 ns - - - -
BitArrayAnd EnableAVX2=0 524288 18,556.01 ns 159.264 ns 148.975 ns 18,647.23 ns 18,325.27 ns 18,680.83 ns - - - -
BitArrayOr EnableAVX2=0 524288 18,728.84 ns 461.730 ns 409.312 ns 18,651.97 ns 18,321.14 ns 19,618.68 ns - - - -
BitArrayXor EnableAVX2=0 524288 18,650.85 ns 105.589 ns 93.602 ns 18,667.24 ns 18,337.79 ns 18,739.15 ns - - - -
BitArraySet EnableAVX2=0 524288 655,049.26 ns 1,046.787 ns 817.262 ns 654,613.41 ns 654,304.43 ns 656,784.90 ns - - - -
BitArraySetLengthGrow EnableAVX2=0 524288 371,882.73 ns 16,085.107 ns 18,523.634 ns 368,049.05 ns 349,451.36 ns 412,910.73 ns 391.3043 391.3043 391.3043 1573014 B
BitArraySetLengthShrink EnableAVX2=0 524288 150,395.69 ns 654.066 ns 546.175 ns 150,393.69 ns 149,559.90 ns 151,709.41 ns 249.3812 249.3812 249.3812 786512 B
BitArrayCopyToIntArray EnableAVX2=0 524288 15,972.10 ns 114.164 ns 106.789 ns 15,998.43 ns 15,607.30 ns 16,037.16 ns - - - -
BitArrayCopyToByteArray EnableAVX2=0 524288 100,951.51 ns 851.398 ns 796.398 ns 100,426.48 ns 100,311.58 ns 102,525.56 ns - - - -
BitArrayCopyToBoolArray EnableAVX2=0 524288 5,445,592.79 ns 20,480.222 ns 17,101.913 ns 5,438,529.17 ns 5,431,439.58 ns 5,492,589.58 ns - - - -
BitArrayLengthCtor Empty 524288 2,343.56 ns 68.309 ns 78.664 ns 2,355.86 ns 2,240.32 ns 2,461.22 ns 10.4087 3.4600 - 65592 B
BitArrayLengthValueCtor Empty 524288 6,988.46 ns 100.348 ns 93.866 ns 6,979.73 ns 6,889.70 ns 7,166.38 ns 10.3932 3.4362 - 65592 B
BitArrayBitArrayCtor Empty 524288 4,015.58 ns 68.207 ns 63.800 ns 4,002.68 ns 3,909.40 ns 4,139.19 ns 10.4063 3.4532 - 65592 B
BitArrayBoolArrayCtor Empty 524288 1,984,515.36 ns 1,981.316 ns 1,546.881 ns 1,984,022.66 ns 1,983,325.78 ns 1,987,872.66 ns 7.8125 - - 65592 B
BitArrayByteArrayCtor Empty 524288 192,518.23 ns 2,719.971 ns 2,544.262 ns 192,402.97 ns 187,938.80 ns 197,473.86 ns 134.1463 134.1463 134.1463 524347 B
BitArrayIntArrayCtor Empty 524288 433,438.83 ns 29,007.085 ns 33,404.602 ns 430,060.68 ns 376,975.69 ns 497,739.24 ns 196.1806 196.1806 196.1806 2097217 B
BitArraySetAll Empty 524288 36,661.68 ns 22.187 ns 18.527 ns 36,658.29 ns 36,639.35 ns 36,704.33 ns - - - -
BitArrayNot Empty 524288 11,900.24 ns 180.132 ns 168.496 ns 11,824.72 ns 11,656.98 ns 12,244.99 ns - - - -
BitArrayGet Empty 524288 3,472,146.34 ns 6,543.142 ns 5,800.325 ns 3,470,316.88 ns 3,466,742.50 ns 3,486,210.00 ns - - - -
BitArrayRightShift Empty 524288 208,441.76 ns 62.827 ns 55.694 ns 208,445.21 ns 208,342.17 ns 208,545.42 ns - - - -
BitArrayLeftShift Empty 524288 209,172.99 ns 430.589 ns 381.706 ns 209,005.75 ns 208,836.83 ns 209,941.42 ns - - - -
BitArrayAnd Empty 524288 18,544.69 ns 216.953 ns 202.938 ns 18,644.91 ns 18,322.75 ns 18,886.56 ns - - - -
BitArrayOr Empty 524288 18,663.89 ns 39.431 ns 32.927 ns 18,653.28 ns 18,628.69 ns 18,737.94 ns - - - -
BitArrayXor Empty 524288 18,682.06 ns 119.593 ns 106.016 ns 18,656.82 ns 18,445.93 ns 18,925.66 ns - - - -
BitArraySet Empty 524288 656,296.47 ns 3,239.739 ns 2,871.944 ns 654,780.47 ns 654,477.08 ns 663,135.94 ns - - - -
BitArraySetLengthGrow Empty 524288 368,537.81 ns 11,437.030 ns 12,712.228 ns 370,223.81 ns 350,049.40 ns 392,936.76 ns 379.4643 379.4643 379.4643 1573056 B
BitArraySetLengthShrink Empty 524288 150,452.77 ns 461.074 ns 385.018 ns 150,596.45 ns 149,719.77 ns 150,891.05 ns 249.3990 249.3990 249.3990 786512 B
BitArrayCopyToIntArray Empty 524288 15,938.37 ns 206.530 ns 161.245 ns 16,006.02 ns 15,580.89 ns 16,019.22 ns - - - -
BitArrayCopyToByteArray Empty 524288 100,459.08 ns 90.412 ns 70.588 ns 100,450.24 ns 100,362.54 ns 100,639.31 ns - - - -
BitArrayCopyToBoolArray Empty 524288 5,435,226.74 ns 2,477.739 ns 1,934.455 ns 5,435,160.42 ns 5,431,587.50 ns 5,438,343.75 ns - - - -

Benchmarks (2).zip

I haven't done any statistical analysis on the data; but for me, the results seem to suggest that AVX2 is actually slower (few nanoseconds) when the size of the array is about 16 < n < 1024 bytes (when it starts to go through the vectorised paths), and from 1KiB it seems to start getting faster or similar, but even then the difference in speed seems quite small, and honestly feels like it wouldn't be a massive performance improvement unless you're operating with like megabytes of data.

Based on dotnet/corefx#33367 (comment), as far as .NET repositories are concerned it looks like ML possibly could benefit from this, but I don't really see much benefit to pursue Avx2 path, given that the SSE2 path is already fast enough.

@Gnbrkm41
Copy link
Contributor

Gnbrkm41 commented Oct 15, 2019

Side note: could we possibly vectorise new BitArray(bool[])s perhaps? I'll probably take a look at it.

@Gnbrkm41
Copy link
Contributor

Regarding the second entry in the TODO list:

Meaure the performance of SetAll for various small sizes to see if the previous simple loop implementation is faster, and at what point vectorized implementations in Span.Fill() are better.

I personally feel that using Span.Fill() is better than using simple loops, since BitArray could also benefit by any changes made in Span.Fill(). If it turns out to be slower, maybe we can look into optimising Span.Fill() instead?

@EgorBo
Copy link
Member

EgorBo commented Oct 15, 2019

@Gnbrkm41 it's not easy to analyze the results you've posted, could you please make a table where columns are different settings (e.g. AVX, SSE, software-fallback) ?

it looks like ML possibly could benefit from this

I suspect for performance critical hot-paths they manually do SIMD work (e.g. alignment stuff)

Side note: could we possibly vectorise new BitArray(bool[])s perhaps?

It's a bit complicated so should be an interesting task to practice SIMD ;-)

If it turns out to be slower, maybe we can look into optimising Span.Fill() instead?

it's a known issue (Span.ctor codegen) but I suspect the fix for it is not trivial so it's still there

@Gnbrkm41
Copy link
Contributor

Gnbrkm41 commented Oct 15, 2019

@EgorBo

Old wrong benchmark - see below New implementation, compared with different sizes: ![QymHOw71Fc](https://user-images.githubusercontent.com/42944058/66847952-33453680-efaf-11e9-9814-558e99389501.png)

Comparison between the current implementation and the new implementation:
EqL2t0Fe1N

@BruceForstall
Copy link
Member

@Gnbrkm41 Does the machine you are measuring on have AVX2 support? It looks like you measure essentially no difference between SSE2 and AVX2, yet I measured a huge improvement with AVX2 and the vectorized implementations.

@Gnbrkm41
Copy link
Contributor

I'm using Intel i7-8700, which according to Intel supports AVX2. Running Console.WriteLine(Avx2.IsSupported) seem to print true as well. I suspect it is possible that CPUs with different microarchitecture could have different results, though. Which CPU were you using on your machine?

@Gnbrkm41
Copy link
Contributor

Gnbrkm41 commented Oct 15, 2019

This actually is odd; it appears like the environment variables are not being applied correctly... I get the same result even if I have the environment variable set to turn intrinsics off.

EDIT: nope, it actually is working properly.

@BruceForstall
Copy link
Member

I re-ran the dotnet/performance benchmarks on my machine, and saw the following, which indicate a huge improvement with AVX2 intrinsics.

dotnet run -c Release -f netcoreapp5.0 --filter *BitArray*

Baseline:

Method Size Mean Error StdDev Median Min Max Gen 0 Gen 1 Gen 2 Allocated
BitArraySetAll 512 81.54 ns 2.149 ns 2.475 ns 82.75 ns 76.91 ns 84.98 ns - - - -
BitArrayNot 512 87.58 ns 6.292 ns 6.732 ns 86.22 ns 78.63 ns 104.03 ns - - - -
BitArrayAnd 512 28.94 ns 0.375 ns 0.332 ns 28.99 ns 28.28 ns 29.44 ns - - - -
BitArrayOr 512 27.77 ns 1.130 ns 1.301 ns 27.64 ns 25.56 ns 29.93 ns - - - -
BitArrayXor 512 26.21 ns 0.839 ns 0.933 ns 26.36 ns 23.99 ns 27.46 ns - - - -

With dotnet/corefx#39173:

Method Size Mean Error StdDev Median Min Max Gen 0 Gen 1 Gen 2 Allocated
BitArraySetAll 512 37.01 ns 0.297 ns 0.263 ns 37.03 ns 36.42 ns 37.49 ns - - - -
BitArrayNot 512 10.83 ns 0.274 ns 0.243 ns 10.75 ns 10.52 ns 11.28 ns - - - -
BitArrayAnd 512 13.07 ns 0.205 ns 0.191 ns 13.05 ns 12.69 ns 13.39 ns - - - -
BitArrayOr 512 14.55 ns 0.205 ns 0.191 ns 14.61 ns 14.13 ns 14.78 ns - - - -
BitArrayXor 512 13.01 ns 0.240 ns 0.224 ns 12.90 ns 12.79 ns 13.56 ns - - - -

@Gnbrkm41
Copy link
Contributor

The numbers definitely seem very promising. I just need to figure out what caused the numbers to come out that badly then.

@Gnbrkm41
Copy link
Contributor

Gnbrkm41 commented Oct 16, 2019

Turns out that I typed the environment variables without the COMPlus_ prefix 🤦‍♀ On a positive side, I managed to vectorise the bool[] ctor implementation in the meantime.

@Gnbrkm41
Copy link
Contributor

benchmarks.zip

Comparison between the current implementation and the new implementation:
JJ5O9Ijp7O

Comparison of AVX2 and SSE2 with various sizes:
XfnWSfc3TF

@Gnbrkm41
Copy link
Contributor

Gnbrkm41 commented Oct 16, 2019

To-dos:

  1. Test and measure performance with AVX2 disabled, and AVX2 and SSE2 both disabled. For performance, this is to see when AVX2 starts being better.

Looks like there could be slight slowdown for sizes smaller than 256; but otherwise it appears that Avx2 is faster overall.

  1. Measure the performance of SetAll for various small sizes to see if the previous simple loop implementation is faster, and at what point vectorized implementations in Span.Fill() are better.

Running ResultsComparer with size of 32, 64, 96, 128, 256, 512, 1024 elements showed no slowdowns for threshold of 1%, and faster results for size > 128.

summary:
better: 4, geomean: 1.411
total diff: 4

No Slower results for the provided threshold = 1% and noise filter = 0.3ns.

Faster base/diff Base Median (ns) Diff Median (ns) Modality
System.Collections.Tests.Perf_BitArray.BitArraySetAll(Size: 512) 1.76 55.74 31.69
System.Collections.Tests.Perf_BitArray.BitArraySetAll(Size: 1024) 1.70 105.98 62.51
System.Collections.Tests.Perf_BitArray.BitArraySetAll(Size: 256) 1.23 20.38 16.54
System.Collections.Tests.Perf_BitArray.BitArraySetAll(Size: 128) 1.08 10.37 9.61
  1. Investigate aligning Vector256 (and Vector128) reads/writes: split operations into unaligned head, aligned body, unaligned tail. Measure by forcing unaligned and forcing aligned incoming pointers to see the difference. Measure for small and large BitArray sizes.

It appears that the first element of int[] may be already aligned to the 32 bytes boundary; I'm not sure if this is true or something that I can rely on.

  1. Merge with Ensure BitArray unsafe accesses are within bounds corefx#39270

Long since it has been merged.

@danmoseley
Copy link
Member

Turns out that I typed the environment variables without the COMPlus_ prefix

In the past I have been similarly caught out by using the wrong casing (eg ComPlus..) when on Unix.

@Gnbrkm41
Copy link
Contributor

Gnbrkm41 commented Oct 16, 2019

Some benchmarks for the bool array constructor.

Before change:

BenchmarkDotNet=v0.11.5.1159-nightly, OS=Windows 10.0.18999
Intel Core i7-8700 CPU 3.20GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical cores
.NET Core SDK=5.0.100-alpha1-014888
  [Host]     : .NET Core 5.0.0-alpha1.19507.3 (CoreCLR 5.0.19.50101, CoreFX 5.0.19.50407), X64 RyuJIT
  Job-OENBYZ : .NET Core 5.0.0-alpha1.19507.3 (CoreCLR 5.0.19.50101, CoreFX 5.0.19.50407), X64 RyuJIT
  Job-KZUUDN : .NET Core 5.0.0-alpha1.19507.3 (CoreCLR 5.0.19.50101, CoreFX 5.0.19.50407), X64 RyuJIT
  Job-IEXRMQ : .NET Core 5.0.0-alpha1.19507.3 (CoreCLR 5.0.19.50101, CoreFX 5.0.19.50407), X64 RyuJIT

PowerPlanMode=00000000-0000-0000-0000-000000000000  IterationTime=250.0000 ms  MaxIterationCount=20  
MinIterationCount=15  WarmupCount=1  
Method EnvironmentVariables Size Mean Error StdDev Median Min Max Gen 0 Gen 1 Gen 2 Allocated
BitArrayBoolArrayCtor COMPlus_EnableAVX2=0 4 11.02 ns 0.072 ns 0.068 ns 11.03 ns 10.92 ns 11.15 ns 0.0102 - - 64 B
BitArrayBoolArrayCtor COMPlus_EnableHWIntrinsic=0 4 11.21 ns 0.175 ns 0.164 ns 11.22 ns 11.00 ns 11.55 ns 0.0102 - - 64 B
BitArrayBoolArrayCtor Empty 4 10.98 ns 0.172 ns 0.161 ns 10.90 ns 10.78 ns 11.30 ns 0.0102 - - 64 B
BitArrayBoolArrayCtor COMPlus_EnableAVX2=0 512 430.45 ns 5.311 ns 4.968 ns 428.07 ns 424.12 ns 439.12 ns 0.0190 - - 120 B
BitArrayBoolArrayCtor COMPlus_EnableHWIntrinsic=0 512 499.90 ns 11.107 ns 12.346 ns 499.28 ns 481.20 ns 533.14 ns 0.0176 - - 120 B
BitArrayBoolArrayCtor Empty 512 431.76 ns 8.637 ns 9.242 ns 426.37 ns 424.37 ns 457.68 ns 0.0189 - - 120 B
BitArrayBoolArrayCtor COMPlus_EnableAVX2=0 4096 10,872.68 ns 37.735 ns 35.297 ns 10,871.38 ns 10,822.65 ns 10,925.83 ns 0.0867 - - 568 B
BitArrayBoolArrayCtor COMPlus_EnableHWIntrinsic=0 4096 9,827.11 ns 98.067 ns 91.732 ns 9,792.05 ns 9,678.33 ns 9,964.49 ns 0.0791 - - 568 B
BitArrayBoolArrayCtor Empty 4096 10,805.22 ns 25.537 ns 21.325 ns 10,804.23 ns 10,771.38 ns 10,848.48 ns 0.0864 - - 568 B

After change:

BenchmarkDotNet=v0.11.5.1159-nightly, OS=Windows 10.0.18999
Intel Core i7-8700 CPU 3.20GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical cores
.NET Core SDK=5.0.100-alpha1-014888
  [Host]              : .NET Core 5.0.0-alpha1.19507.3 (CoreCLR 5.0.19.50101, CoreFX 5.0.19.50407), X64 RyuJIT
  Job-HQREBH          : .NET Core ? (CoreCLR 5.0.19.51405, CoreFX 5.0.19.51701), X64 RyuJIT
  AVX2 Disabled       : .NET Core ? (CoreCLR 5.0.19.51405, CoreFX 5.0.19.51701), X64 RyuJIT
  Intrinsics Disabled : .NET Core ? (CoreCLR 5.0.19.51405, CoreFX 5.0.19.51701), X64 RyuJIT

Method Job EnvironmentVariables PowerPlanMode Toolchain IterationTime MaxIterationCount MinIterationCount WarmupCount Size Mean Error StdDev Median Min Max Gen 0 Gen 1 Gen 2 Allocated
BitArrayBoolArrayCtor Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 4 12.48 ns 0.121 ns 0.113 ns 12.49 ns 12.31 ns 12.70 ns 0.0101 - - 64 B
BitArrayBoolArrayCtor AVX2 Disabled COMPlus_EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Before Default Default Default Default 4 11.73 ns 0.127 ns 0.119 ns 11.71 ns 11.54 ns 11.89 ns 0.0102 - - 64 B
BitArrayBoolArrayCtor Intrinsics Disabled COMPlus_EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Before Default Default Default Default 4 11.41 ns 0.026 ns 0.024 ns 11.42 ns 11.37 ns 11.47 ns 0.0102 - - 64 B
BitArrayBoolArrayCtor Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 512 58.24 ns 0.279 ns 0.261 ns 58.24 ns 57.71 ns 58.62 ns 0.0191 - - 120 B
BitArrayBoolArrayCtor AVX2 Disabled COMPlus_EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Before Default Default Default Default 512 59.82 ns 0.591 ns 0.553 ns 59.58 ns 59.07 ns 60.83 ns 0.0191 - - 120 B
BitArrayBoolArrayCtor Intrinsics Disabled COMPlus_EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Before Default Default Default Default 512 428.99 ns 2.622 ns 2.453 ns 429.30 ns 425.57 ns 433.40 ns 0.0191 - - 120 B
BitArrayBoolArrayCtor Default Empty 00000000-0000-0000-0000-000000000000 CoreRun 250.0000 ms 20 15 1 4096 206.49 ns 0.738 ns 0.654 ns 206.46 ns 204.83 ns 207.69 ns 0.0899 - - 568 B
BitArrayBoolArrayCtor AVX2 Disabled COMPlus_EnableAVX2=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Before Default Default Default Default 4096 254.26 ns 5.146 ns 6.320 ns 250.29 ns 248.31 ns 266.28 ns 0.0901 - - 568 B
BitArrayBoolArrayCtor Intrinsics Disabled COMPlus_EnableHWIntrinsic=0 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Before Default Default Default Default 4096 10,161.82 ns 53.041 ns 49.615 ns 10,158.37 ns 10,084.47 ns 10,236.16 ns 0.0763 - - 568 B

benchmarks-boolctor.zip

@Gnbrkm41
Copy link
Contributor

Opened dotnet/corefx#41896; PTAL if you have some time :^)

@msftgits msftgits transferred this issue from dotnet/corefx Feb 1, 2020
@msftgits msftgits added this to the 5.0 milestone Feb 1, 2020
@ghost ghost locked as resolved and limited conversation to collaborators Dec 12, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Hackathon Issues picked for Hackathon tenet-performance Performance related issue
Projects
None yet
Development

No branches or pull requests

9 participants