- PR -

配列サイズの制約について(eclipse上)

1
投稿者投稿内容
aexpress
会議室デビュー日: 2008/03/31
投稿数: 3
投稿日時: 2008-03-31 05:47
はじめて投稿します。よろしくお願いします。

eclipseで線形計画法のプログラムを作成していますが、解く問題が大規模になり、配列サイズが2000×2000(double型)を超えてしまいました。もう少し大きくできないかといろいろやっていますが、実行時エラー(ArrayIndexOutOfBoundsException)が出てしまいます。対応策をご存知の方がいらっしゃいましたら、ご教示お願いします。
Gio
ぬし
会議室デビュー日: 2003/11/28
投稿数: 350
お住まい・勤務地: 都内から横浜の間に少量発生中
投稿日時: 2008-03-31 08:35
OutOfMemoryError であれば環境変数 JAVA_OPTS に -Xmx オプション(-Xmx256M 等)を設定すれば解決すると思われますが、メモリ不足だけでは ArrayIndexOutOfBoundsException は発生しないと考えます。
(4000000 個の double はメモリ容量で言うと 32MB です。)

確保した配列の添字上限(2000)を越える要素にアクセスしていないか確認してみてください。
念のため 20×20 くらいにしてアルゴリズムに誤りがないか確認して、それからサイズを変更するのも良いかもしれません。

老婆心ながら、質問をされる場合は OS や Eclipse の設定等を明記された方がよろしいと思います。
書かれていないことを回答する人が知る術はありません。
aexpress
会議室デビュー日: 2008/03/31
投稿数: 3
投稿日時: 2008-04-01 05:50
失礼しました。eclipse は 3.0、OS は Windows XP、メモリは512MBです。
(これ以上はよく分かりません)
ご指摘の通り「ArrayIndexOutOfBoundsException」についてはプログラムのミスでした。
ただし修正後も「OutOfMemoryError」は出ています。
eclipse.exe のショートカットにて「 -vmargs -Xmx256m -Xmn96m」とオプションをつけたつもりですが、どうもうまくいきません。
koe
大ベテラン
会議室デビュー日: 2003/07/13
投稿数: 198
投稿日時: 2008-04-01 08:40
引用:

aexpressさんの書き込み (2008-04-01 05:50) より:
eclipse.exe のショートカットにて「 -vmargs -Xmx256m -Xmn96m」とオプションをつけたつもりですが、どうもうまくいきません。


それはEclipseの引数であって、Eclipse上で動かすプログラムの引数ではありません。
プログラムの引数の指定方法は、こちらをご覧下さい。
http://www.javaroad.jp/opensource/js_eclipse4.htm
「Eclipse 実行 引数」などで検索すると、他にも有用なページがヒットしますので
併せてご覧になるといいと思います。
aexpress
会議室デビュー日: 2008/03/31
投稿数: 3
投稿日時: 2008-04-02 04:25
解決しました。ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)