多数のアイテムを持つ.NETコレクションは、LOHに格納されやすいのですか?.NETコレクションとラージオブジェクトヒープ(LOH)
私は特にリストと辞書について興味があります。私のコードでは、比較的小さなオブジェクト(40k +)を一時的なリストと辞書に格納して処理します。これらのコレクションのアイテムの数は、LOHに入れられる可能性を高めますか?
Listは、Listが二重リンクリストとして実装されていると仮定すると、実際のListオブジェクトのサイズを増やすべきではありませんが、確かに知りたいと思います。
おかげ
8バイト境界でアライドされた方が高速であるため、倍精度の配列には下限があります。 –
辞書の実装は、合体ハッシュテーブル(連鎖ですが配列を使用します)連鎖されたバケットを格納するために、キャッシュの使用に関する限りオープンなアドレッシングの利点を得るため)、40kでは内部配列40000 *(keysize + valuesize + 8 [hashcodeをメモするint 1つはチェーン内に次のインデックスを格納する])と40000 * 4(intサイズ)の内部配列です。それはあらかじめ計算された素数を使用するので、40000は実際には少なくとも43627、おそらくは90523になります。 ... –
...少なくとも1つの436270バイトの配列(キーと値が両方ともバイトサイズで、他のサイズであれば)、少なくとも1つの174508バイトのインデックスの配列。したがって、40kの要素辞書は**常に** LOH内の内部表現の一部を持っています(辞書自体は40-80バイトのように、世代のヒープの1つでサイズに関係なく)。 –