使用CLR探查一些experimenation後,我發現:如何知道.NET中的大對象堆(LOH)中分配了一個結構數組?
Node[,] n = new Node[100,23]; //'84,028 bytes, is not placed in LOH
Node[,] n = new Node[100,24]; //'86,428 bytes, is
public struct Node {
public int Value;
public Point Point;
public Color Color;
public bool Handled;
public Object Tag;
}
在運行時,我怎麼知道的結構(或陣列)的陣列中的大對象堆(LOH)被分配?
我不相信這是可能的(不使用自己的剖析API)。你爲什麼想知道? – 2010-05-06 00:28:43
我遇到了應用程序使用的一個結構的性能問題。我已經成功地優化了其他數組(http://stackoverflow.com/questions/2762424/what-is-the-fastest-way-to-initialize-a-multi-dimensional-array-to-non-default-va/) 。然而,這種結構是真正的性能殺手。 – AMissico 2010-05-06 00:33:00
如果只是爲了性能調整,那麼爲什麼不直接使用profiler? – 2010-05-06 00:37:14