[c#] .Net配列のサイズに関する制限



1 Answers

4.5より前のバージョンの.NETでは、最大オブジェクトサイズは2GBです。 4.5以降では、 gcAllowVeryLargeObjectsが有効な場合に大きなオブジェクトを割り当てることができます。 stringの制限は影響を受けませんが、リストは配列によってサポートされているため、「配列」も「リスト」をカバーする必要があります。

Question

.Net Arrayサイズには厳しい制限があると聞きました。 Arrayオブジェクトの任意の単一のインスタンス( int[]double[]または自分の配列であるかどうかにかかわらず)に割り当てることができる最大メモリ量は2GBと言われています。 64ビットマシンを使用している場合は、2GBの制限が残ります。

私の印象が正しいかどうかはわかりません。 誰でも確認できますか?




私は限界が指数にあるかもしれないと思ったでしょう。 私は使用されるインデックスは整数でなければならないと考えていました。 だからそれは4294967296要素になります。 これが真の半分であるかどうかはわかりません。 私は自分自身で答えを知りたいです。

編集:tomtomが指摘したように、整数は通常、符号なし整数を使用しない限り署名されます。 だから、およそ4294967296または2147483648の半分。






Related



Tags

c# c#   arrays