読んだ後、C#文字列(およびその他の.NET API)のサイズは2GBに制限されていますか?.NET3.5で大きな文字列と配列を試してみました。割り当てることができる最大の配列はint.MaxValue - 56
バイトであることがわかりました。文字列についても同様です。取得できる最大の文字は(int.MaxValue - 58) / 2
文字でした(各文字は2バイトを使用したため)。その後、スローしOutOfMemoryException
ます。
なぜこの制限が存在するのですか?実際に遭遇したことはありません。.NETの内部動作に興味があります。
はい、もちろん、これは十分なRAMを備えた64ビットマシン上にありました。もちろん、プロセスは64ビットプロセスとして実行されていました。(実際には、このような配列または文字列を3つ割り当てて、合計メモリ使用量を6GBにすることができます。)