为什么BitVector 32结构比BitArray更有效?

Jay*_*h.7 15 c# collections bitvector

BitArray和BitVector 32结构有什么区别,BitVector 32结构比BitArray有什么优势?为什么BitVector 32结构比BitArray更有效?

提前致谢.

周杰伦...

Mat*_*ley 17

对于布尔值和内部使用的小整数,BitVector32比BitArray更有效.BitArray可以根据需要无限增长,但它具有类实例所需的内存和性能开销.相反,BitVector32仅使用32位.

http://msdn.microsoft.com/en-us/library/system.collections.specialized.bitvector32.aspx

BitVector32是一个结构,只消耗4个字节.BitArray是一个具有与之关联的开销的类,因此效率较低 - 在你将任何对象添加到堆上之前,BitArray将需要至少8个字节.更多关于堆栈和堆的信息.


Sin*_*nür 8

以下是Microsoft的BitVector32文档:

BitVector32BitArray内部使用的布尔值和小整数更有效.A BitArray可以根据需要无限增长,但它具有类实例所需的内存和性能开销.相反,a BitVector32仅使用32位.

容量BitVector32限制为32位,大小为int.因此,索引和屏蔽可以是单个操作.将其与734位的位数组进行比较,您需要确定是否设置了位197.想想你将如何做到这一点(从类设计师的角度来看).