• 締切済み

仮想メモリ不足のエラーの回避方法

WindowsNT Embedded(NT4.0 SP5相当)を使用しています。 ディスクの容量を増やすことができないため仮想メモリを64MBぐらいで使用したいのですが、仮想メモリ不足が発生しエラーが表示されてしまいます。 (ディスクは320MBしかありませんので、OS,APを入れると仮想メモリをなしとして計算しても空き容量は80MBぐらいしかとれません) ちなみに実メモリは130MB、仮想メモリは推奨139MBです。 パフォーマンスは犠牲にしても良い場合に、エラーを出さない方法を知っていましたら教えていただきたいのですが? また、この場合パフォーマンス以外に問題になることはありますか? 他に、方法を知っている方がいましたら回答をお願いいたします。

みんなの回答

  • PCboy
  • ベストアンサー率30% (150/490)
回答No.7

 仮想メモリを増やすとどうしても、その分、ハードディスク容量が減ります! パフォーマンスを犠牲にしてまで、ハードディスク容量を確保したいと言う事なので、ズバリ!! 仮想メモリ容量を減らす事!! 本当に、ハードディスクの使用出来る容量が残りあと少ないのであれば、1ドライブ当たりの仮想メモリの最小と最大を2MBにするしか無いでしょう! それが、設定できないよ-な事ならば、4MB当たりにするしか無いでしょう!! 結局、64MBにするなら、適当に設定を重ねて行って 合計を64MBに合わせれば良い事ではないですか!!?

参考URL:
http://www2.csc.ne.jp/~wao
  • terra5
  • ベストアンサー率34% (574/1662)
回答No.6

WindowsNT Embeddedは組み込み用OSなので、 事情が違うかもしれませんが・・・。 仮想メモリが不足するなら、とにかく徹底的に メモリの節約をするしかないでしょう。 作成されているプログラムでも極力メモリの節約を 考えたプログラムを考える必要があるでしょう。 VB(一部の部品)とありましたが、これはかなりメモリを 使うように思いますが,VCのみにして使用を避けられませんか。 あとは、不要なプログラム、サービス、ドライバ、DLLを 全て外すこと。Embeddeddだと事情が違うかも知れませんが、Windowsだと使いもしない物が動作してますし。 95や98だとむやみに大きなサイズのファイルキャッシュを とったりします。NTだとそれほどは酷くないと思いますが, 可能ならキャッシュサイズを極力小さくすることも考えた 方が良いでしょう。

  • cse_ri
  • ベストアンサー率29% (74/253)
回答No.5

VC++でアプリケーションを開発しているのでしたら、空きメモリを取得 することは簡単にできるかと思います。(Win APIをコールすればVBから もできるハズ) Out of Memoryが発生する箇所はご自分でおわかりかと思いますので、 その箇所を徹底的にチューニングして、メモリの消費量を減らすのが 常套手段かと思いますが。 画面を複数開いていると発生しやすいとのことですので、画面を複数 開かないように仕様レベルまで戻って見直す必要もあるかと思います。 ちなみに空きメモリを簡単に調べる方法ですが、Win2000のタスクマ ネージャを開いておけば、リアルタイムで確認することができます。

  • cse_ri
  • ベストアンサー率29% (74/253)
回答No.4

ハード(ディスク・メモリ)の増設が難しいとのことですが、 現在、どのようなアプリケーションを何の言語で開発している のでしょうか。 直接的な原因としては、そのアプリケーションでメモリを占有 しすぎたために「Out of Memory」エラーが発生していると 思いますが。

skoba
質問者

補足

回答ありがとうございます。 アプリケーションはVC++(メイン),VB(一部の部品)で常時起動でシステムを監視、制御する物を作成しております。 初歩的な質問で申し訳ないのですが「Out of Memory」エラーが発生しているかはどのようにチェックすればよいのですか?

  • parts
  • ベストアンサー率62% (6366/10151)
回答No.3

問題が大ありですね。 実メモリも130(128MBかな)で仮想が採れないとなると、難しいですね。 メモリデフラグツールなんかを入れれば、少しは持つかもしれませんけど・・・ここまで少ない状況では試したこと無いですから・・・NT系なら解放能力は高いですけど・・・ それに賭けてみるしかないのでは・・・ただ少しは仮想メモリを確保しておいた方が良いですよ。 参考にたぶん最も軽い部類のメモリ管理ソフトがあります。これで、もしかしたら効率よくメモリ解放できるかもしれませんが・・・

参考URL:
http://www.vector.co.jp/soft/win95/hardware/se190988.html
skoba
質問者

補足

回答ありがとうございます。 説明がへたですみません、勘違いされているかもしれません。 仮想メモリは64MBぐらいはとれると思います。(推奨値はむりですが) その中でエラーを出さないようにしたいのです。 勉強不足でわからないのですが、メモリデフラグツールは、メモリを解放する時に仮想メモリに内容を掃き出す事無く最適化してくれるのでしょうか? 仮想メモリに内容を掃き出すと逆効果になってしまうような気がするのですが?

noname#25358
noname#25358
回答No.2

 よけいなお世話かもしれませんが(^_^;  「仮想メモリ」というのはもともとハードディスク上に作るものなんですが(笑)  だからディスク容量が増えなければ、仮想メモリを増やすことは物理的に不可能です。  「ガソリンタンクを大きくはできないが、ガソリンが2倍入るようにしたい」と言っているようなものです(笑)  対策としては、まずは余計な常駐アプリなんかを削除してみるといいかと思います。特にメモリを大量に消費する奴なんか。もっとも、実メモリが130もあってメモリが不足する当たり、何が動いているのかいまいち謎ですが(^_^;  クライアントとして使っているのであれば、一度に起動するアプリケーションの数を3つなら3つで心がける、という手があります。  サーバーの場合はクラッシュしたときの被害が大きいので、お金を使うことを真剣に考えた方がいいでしょう(^_^;

skoba
質問者

補足

指摘ありがとうございます。 ガソリンタンクの話はたしかにそう思います。 私が考えているのはガソリンタンクを大きくするのではなく、ガソリンを少しずつ補充するなどして長距離を走りたいのです。 例えばAPで仮想メモリを解放するとかができれば… 現在APを開発中で、画面数が多く、色々な画面へ行ったりすると仮想メモリを多く使用してしまいます。 ちなみに起動するのはOSとAPが一本のみでネット-ワーク等は使用しません。 何かありましたらよろしくお願いいたします。 (ディスクの容量を増やすのは最後の手段としたいです)

回答No.1

NT4.0として書いておきます。(参考になれば...) 推奨値より仮想メモリを増やすか、物理メモリを増設する方法が、私の思いつく方法です。やはりこの2つしかないのでは...予算があれば物理メモリを簡単に増設出来るんでしょうけど... さらに仮想メモリを増やす場合は、修復DISK作成とバックアップを取っておけは、万全でしょう!たまに、立ち上がらなくなる事がありました。(体験談) DISKが320MBで、メモリ130MB?どんなマシンなのか... (WindowsNT Embedded?ってDISKの空きの推奨値は320MB以下でしたっけ?すいませんNT4.0は知っているのですが...)

skoba
質問者

補足

早々に回答ありがとうございます。 現時点では、ディスク、物理メモリを増やす事は考えておりません (実はハードウェア込みの商品とする予定です) 仮想メモリを推奨メモリより小さくすることによりエラーが表示しないようにしたいのです。 ソフトウェアで対処する方法はないのでしょうか? 常時起動のシステムですので長い間使用していてハングアップしてしまっても困りますが..

関連するQ&A