• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:64bit C#アプリ メモリをたくさん使いたい)

64bit C#アプリでメモリをたくさん使いたい!32GBの増強で改善する?

このQ&Aのポイント
  • 64bit Windows7 Pro + VisualStudio2010 + C#でメモリをたくさん使いたいと思います。パソコンは16GBを積んでいます。
  • シンプルなクラスを100,000,000個位newしてListに収めるだけのアプリで、3~4GBを超えるとクラスのnewに失敗します。GC.Collect()を呼び出しても3~6GB程度で失敗します。
  • 32GBに増強することで、メモリの使用量を2倍程度まで伸ばすことができるのでしょうか?理解が間違っているのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

Listに要素を追加する場合、瞬間的に要素数の2倍以上のメモリを消費するハズ。 LinkedLisでtはいかがでしょうか。

noname#148582
質問者

お礼

ありがとうございます。 List に要素を追加する時にですが・・・。list 作成時に大きさをあらかじめ指定できるのですが、それがあるなしでエラーが出る事があります。 LinkedList は指定できず、それゆえかどうかはわかりませんが、やはりうまくいきません。(ちなみに10,000,000 個前後でダメです) wikipedia によるとクラスはヒープ、構造体はスタックとありました。実際にいろいろパターンを変えて試したところ、構造体をList<List<structX>> の入れ子にして100個づつに分割して保持してみたところ、唯一エラーなく大量にメモリを使えました。 #ファンですw

その他の回答 (1)

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.1

そこまで大容量に挑戦した事無いですが、ソリューションプラットフォームをx64してもダメですか?

noname#148582
質問者

お礼

ありがとうございます。 x64 にしてもダメみたいです。System.IntPtr.Size が8 になるのを確認していますので64bit なのは間違いないんですが・・・。 ちなみに失敗は FatalExecutionEngineError という.Net 側のエラーのようです。う~~ん。

関連するQ&A