2015-11-13 82 views
0

在SO和互联网上的大多数答案都是“为什么应该struct small size”是指性能,但没有一个解释为什么为。任何人都可以点亮它吗?为什么小型结构可以提高大型结构的性能?

+1

因为它是一个valuetype,并且在传递给方法或从方法返回或赋值时复制该值。 – leppie

+0

@leppie那么它的内存拷贝更少? –

回答

2

Struct是一个值类型,当它被传递给函数时 - 它被复制。所以如果结构体大小为512位 - 所有512位将被复制。如果你通过参考类型 - 只有32/64位参考这512位将被复制。从MSDN

接下来,引用类型赋值复制引用,而值类型赋值复制整个值。因此,大参考类型的分配比大值类型的分配便宜。

+0

对不起,在这里分割头发:除非你明确地通过引用传递,否则一切都通过C#中的值传递。当你传递一个引用类型时,引用本身被复制。这与C#中的引用传递不同。 –

+0

@BrianRasmussen,同意,添加更多的细节来回答 – 4ybaka

+0

@BrianRasmussen引用谈论有关任务,而不是论证传递。 –