evaWK0のプロフィール
@evaWK0 evaWK0
ありがとう数1
質問数0
回答数1
- ベストアンサー数
- 0
- ベストアンサー率
- 0%
- お礼率
- 0%
- 登録日2010/10/11
- 大容量のメモリ確保をスワップ無しで行う方法について
教えてgooの識者のお知恵をお借りしたくご質問させていただきます。 表記の通り、C&C++を用いて、大容量のメモリ確保をスワップ無しで行いたく考えております。 質問の内容としてましては、(1)、(2)の2点があります。 (1) 「VirtualAllocに失敗するという理由としてどのような原因があるのでしょうか?」 VirtualAlloc関数に、引数MEM_RESERVE、MEM_COMMITを渡してメモリ確保を行ってみたのですが、 メモリ確保に成功するPCと成功しないPCが存在し、理由が分からずにいます。 (いずれもタスクマネージャなどで確認すると物理メモリの空き容量は1.3GB程度空いているPCです。) (確保に失敗するPCで確認してみたところ、650MB付近までは確保に成功します。) (2) 「VirtualAlloc以外にスワップを回避して大容量のメモリを確保する方法はあるのでしょうか?」 newでは確保ができるのですが(当然なのかもしれませんが)、 ページングファイルに移動されてしまうと処理が重たくなってしまうので採用できない方法だと考えています。 プログラムの内容は、外部インターフェースからの入力を待つために常駐し、入力した900MB分のデータを高速に処理するというものです。 900MBのデータ量は必須で、高速かつ安価なPC構成とする必要があるために全ての処理をメモリ上で行う方法を選択しました。 ハードウェアは2GB以上のメモリを搭載、Windows XP SP3 32bitのPCに限定しています。