- 締切済み
メモリの消費量を知る
VB6で開発したアプリケーションの実行中に、「メモリ不足」で強制終了してしまいます。 内容は、「ファイルを入力、処理、ファイルを出力」をファイル数分繰り返すものです。 処理に市販のGISアプリケーションを利用しているため、それが悪さをしているかもしれません。ただ、ステップ数がかなりあるので、どこが悪いのか見つけられないでいます。 そこで、プログラムの途中でメモリの消費量を知る方法はありますか? ちなみに、タスクマネージャーのプロセスのメモリ消費量をみると、確かに、増加しているのですが、プログラムで出力しているウィンドウ画面を最小化すると、一旦激減してしまって、実際の処理との関係がよく分かりませんでした。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
詳しくはわからないので、予想に過ぎませんが、出力したファイル結果を、「プログラムで出力しているウィンドウ画面」にも反映しているという事はないでしょうか?。 一般にGISの表示や駆動には、非常にメモリを食います。さらに一般に、画面表示は、最大のメモリ食いです。自分は、SIS+VB6で仕事をした事があります。加えてVB6は、メモリ管理がかなり下手糞で、Dual Core や ダブルCPUも使いこなせません。これらの事が、重なったのではないでしょうか?。なので、PCのスペックも問題になります。
- K-Sogacchi
- ベストアンサー率53% (50/93)
システム全体のメモリの情報であれば、WinAPI GlobalMemoryStatus で 取得できるようです。 プロセス別だと GetProcessMemoryInfo のようです。 GlobalMemoryStatus の方だと、比較的簡単に説明サイトが見つかったので 参考URLに貼っておきます。
お礼
K-Sogacchiさん 回答ありがとうございました。 サンプルプログラムまで教えていただいて、大変助かりました。
お礼
ddtddtddtさん 回答ありがとうございます。 実は、問題のプログラムもSIS+VB6です。 ただ、GISデータ自体は、画面表示していません(SISのVisibleはFalse)し、SISのメモリ消費に関する注意事項はクリアしているつもりです。 画面表示も含み、もう少し、プログラムを追ってみます。