Guf*_*ffa 10
对象数组实际上是一个引用数组,对象存储在堆上.
这意味着引用有4或8个字节的开销(取决于x86或x64),然后堆上的每个对象都有8或16个字节的开销.
在结构数组中,struct值直接存储在数组中,因此不会产生额外的开销.
因此,如果您的数据是例如48个字节,则额外的12个字节(在x86模式下)将是所用总内存的20%的开销.
请注意,它们的使用方式也有所不同.如果您移动切片或将其作为参数发送到方法,则在使用结构时将复制所有数据,但如果使用类,则仅复制引用.如果你可以保持结构小于16个字节,性能差异很小,但如果它更大,你可以通过使用类来获得更快的代码.