- - PR -
配列サイズの制約について(eclipse上)
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-03-31 05:47
はじめて投稿します。よろしくお願いします。
eclipseで線形計画法のプログラムを作成していますが、解く問題が大規模になり、配列サイズが2000×2000(double型)を超えてしまいました。もう少し大きくできないかといろいろやっていますが、実行時エラー(ArrayIndexOutOfBoundsException)が出てしまいます。対応策をご存知の方がいらっしゃいましたら、ご教示お願いします。 | ||||
|
投稿日時: 2008-03-31 08:35
OutOfMemoryError であれば環境変数 JAVA_OPTS に -Xmx オプション(-Xmx256M 等)を設定すれば解決すると思われますが、メモリ不足だけでは ArrayIndexOutOfBoundsException は発生しないと考えます。
(4000000 個の double はメモリ容量で言うと 32MB です。) 確保した配列の添字上限(2000)を越える要素にアクセスしていないか確認してみてください。 念のため 20×20 くらいにしてアルゴリズムに誤りがないか確認して、それからサイズを変更するのも良いかもしれません。 老婆心ながら、質問をされる場合は OS や Eclipse の設定等を明記された方がよろしいと思います。 書かれていないことを回答する人が知る術はありません。 | ||||
|
投稿日時: 2008-04-01 05:50
失礼しました。eclipse は 3.0、OS は Windows XP、メモリは512MBです。
(これ以上はよく分かりません) ご指摘の通り「ArrayIndexOutOfBoundsException」についてはプログラムのミスでした。 ただし修正後も「OutOfMemoryError」は出ています。 eclipse.exe のショートカットにて「 -vmargs -Xmx256m -Xmn96m」とオプションをつけたつもりですが、どうもうまくいきません。 | ||||
|
投稿日時: 2008-04-01 08:40
それはEclipseの引数であって、Eclipse上で動かすプログラムの引数ではありません。 プログラムの引数の指定方法は、こちらをご覧下さい。 http://www.javaroad.jp/opensource/js_eclipse4.htm 「Eclipse 実行 引数」などで検索すると、他にも有用なページがヒットしますので 併せてご覧になるといいと思います。 | ||||
|
投稿日時: 2008-04-02 04:25
解決しました。ありがとうございました。
|
1