私はWindowsPhoneアプリ(c#)を作成していますが、その中には多くのデータが含まれています。
このデータをディクショナリ(またはあまり理想的ではないが配列)に格納したいのですが、約10,000個のディクショナリ値があります(3〜4個のディクショナリに分散されています)。これらの辞書は大きすぎて、メモリを大量に消費すると思いますか?
辞書はDictionary<int, customClass>
明らかに配列を使用する方が良いでしょうが、辞書を使用しても大丈夫だと思いますか?
私はWindowsPhoneアプリ(c#)を作成していますが、その中には多くのデータが含まれています。
このデータをディクショナリ(またはあまり理想的ではないが配列)に格納したいのですが、約10,000個のディクショナリ値があります(3〜4個のディクショナリに分散されています)。これらの辞書は大きすぎて、メモリを大量に消費すると思いますか?
辞書はDictionary<int, customClass>
明らかに配列を使用する方が良いでしょうが、辞書を使用しても大丈夫だと思いますか?
それはすべて、保存している実際のオブジェクトの数とそれらのオブジェクトのサイズによって異なります。ディクショナリ自体は、32(または64)ビットx 10,000 x 2(キーと値)に加えて、小さなオーバーヘッド(つまり、小さい...)になります。これは、ディクショナリがオブジェクトへのポインタのみを格納するためです。
辞書/配列/リストのようなコレクション内のアイテムの数はそれほど重要ではありません。10w整数のコストは1M(約100,000 * 4バイト)未満です。したがって、メモリコストは、主にに何が格納されるかによって異なりますCustomClass
。クラスにいくつかのプリミティブプロパティのみが含まれている場合は、メモリのコストもそれほど高くありません。クラスのプロパティにファイルのデータをロードするようなことをしない限り、メモリコストについてはそれほど心配する必要はありません。