-PR-
解決済み

VC++におけるメモリ使用量について

  • すぐに回答を!
  • 質問No.77872
  • 閲覧数1860
  • ありがとう数7
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 55% (52/94)

現在VC++6.0を使用して数値解析を行っているのですが、ワークステーションでメモリを1256MBに増設して、500MBくらいのメモリを使用する解析を行ったところ、「トータルイメージサイズが最大値(268435456)を越えています; イメージは動作しない可能性があります」という警告が出ました。しかし実行してみると正常に動作します。

なぜそんな警告がでるのでしょうか?どなたか教えてください、お願いします。
※OSはWINDOWS2000を使用しています。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3

補足読みました。

よく見たら、268,435,456バイトって256MBですね。
で、MSDNを調べてみたところ、単純にリンカの出力する
警告のようですね。
#LNK4013、LNK4084にあります。

これによると、/BASEオプションで設定されている、
もしくはディフォルト値を越えているために、リンク時に
警告をはき出すようです。どうやらこれらを見てみると、
アプリケーションの最大サイズは256MBとされている
ようです。

DLLやOCXなどにしてここのアプリケーションサイズを
小さくするか、メモリを動的に取得するようにして、
サイズを減らさないと、その警告は消えないと思います。
#ちなみに実行結果が正常なのも保証はされないと
#思いますよ。

って、toysmith様も同じことを書かれていますね。
ではでは☆
お礼コメント
asamaken

お礼率 55% (52/94)

ご回答ありがとうございます。
メモリを動的に取得できるようにしてみたいと思います。

大変参考になりました。ありがとうございます。
投稿日時 - 2001-05-19 21:47:06
関連するQ&A
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1

単純に、.objファイルが大きすぎるのではない でしょうか? それにしても数値解析だけで500MBというのは すごいですね・・・ #もう少しメモリの使い方を考慮した方が計算が #早くなるのではないでしょうか? #OSのスワップも入るだろうし・・・ ではでは☆ ...続きを読む
単純に、.objファイルが大きすぎるのではない
でしょうか?

それにしても数値解析だけで500MBというのは
すごいですね・・・
#もう少しメモリの使い方を考慮した方が計算が
#早くなるのではないでしょうか?
#OSのスワップも入るだろうし・・・

ではでは☆
補足コメント
asamaken

お礼率 55% (52/94)

ご回答ありがとうございます。

早速調べてみたところ、.objファイルはどれも数KB程度で小さいです。
私の扱っている解析手法はもともとスーパーコンピューターで行われていた手法で、超並列化は行えてもメモリを削減することは解析手法の性質上不可能です。
500MBというのもWSの性能を見るために行ったテストで、実際は現在の1.2GBでも全然足りないというのが現状で、まだまだメモリを増設する必要があります。

ところで、このWSは最初、メモリが256MBでメモリを増設する前にVC++をインストールしました。そのためVC++が、メモリが増設されたのを認識していないということはあるのでしょうか?
投稿日時 - 2001-05-18 21:40:03
  • 回答No.2
レベル13

ベストアンサー率 37% (570/1525)

Windowsシステムではアプリケーションサイズ(CODE+DATA)が2^28バイトを超えるとこの警告を出すようです。 多分、グローバルで大きな配列を確保しているのでしょう。 数値解析だと大きな配列は必須ですから他の方法を考える必要があるでしょう。 (アルゴリズムを見直せば何分の1かになるかもしれませんが) VirtualAllocを使えば4GBまでの領域を確保可能です。 ただし、仮想 ...続きを読む
Windowsシステムではアプリケーションサイズ(CODE+DATA)が2^28バイトを超えるとこの警告を出すようです。
多分、グローバルで大きな配列を確保しているのでしょう。

数値解析だと大きな配列は必須ですから他の方法を考える必要があるでしょう。
(アルゴリズムを見直せば何分の1かになるかもしれませんが)

VirtualAllocを使えば4GBまでの領域を確保可能です。
ただし、仮想空間で確保する為ディスク開き容量、スワップ頻度などを考慮しなければなりません。
お礼コメント
asamaken

お礼率 55% (52/94)

ご回答ありがとうございます。
大変参考になりました。
投稿日時 - 2001-05-19 21:44:39
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ