コレクションが .Net でどれだけ大きくなるかをテストしています。技術的には、どのコレクション オブジェクトも物理メモリのサイズまで大きくなる可能性があります。
次に、Windows 2003 サーバーと Visual Studio 2008 を実行する 16 GB メモリのサーバーで次のコードをテストしました。F# と C# コードの両方をテストし、実行中にタスク マネージャーを確認しました。約 2GB のメモリを増やした後、プログラムがメモリ不足の例外でクラッシュしたことがわかります。プロパティ ページでターゲット プラットフォームを x64 に設定しました。
open System.Collections.Generic
let d = new Dictionary<int, int>()
for i=1 to 1000000000 do
d.Add(i,i)
C5コレクション ライブラリに対して同じテストを行いました。その結果、C5 のディクショナリがメモリ全体を使い果たす可能性があります。コードは C5 を使用します。
let d = C5.HashDictionary<int, int> ()
for i=1 to 1000000000 do
d.Add(i,i)
誰でも理由を知っていますか?