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引用談論有關任務,而不是論證傳遞。 –