[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Java3Djp:00181] java.lang.OutOfMemoryError



京都の長谷川と申します。

Java6ヶ月、Java3d3ヶ月位の初心者です。
JavaAppletについてお教え下さい。

テクスチャが多いアップレットにおいて、アップレットを
実行するごとにメモリが追加消費され、OutOfMemoryに
なってしまいます。

1GBメモリマシン
Java実行時のパラメータ
-Xmx700m -Xms700m
インターネットエクスプローラでアップレット表示
Javaコンソールにより
メモリ: 711,296K  空き容量: 651,519K  (91%) ... 完了。
メモリ: 711,296K  空き容量: 603,460K  (84%) ... 完了。
メモリ: 711,296K  空き容量: 560,893K  (78%) ... 完了。
   ・
   ・
   ・
java.lang.OutOfMemoryError

アップレット表示しているブラウザを閉じでもメモリ消費量は
変わりません。
実行時毎回、読み込むアップレットは異なるような
プログラムです。ある判定された10枚程度(最大20枚)の
jpg画像を読み込みます。
画像サイズと枚数
1024x1024 2枚くらい
512x512  10枚程度−1024x1024の枚数

プログラム抜粋(****は伏せ字)
if(i1>19) i1=19;
for(int i=0; i<i1; i++){
	res=512;
	if(****0[i]<=10)res=1024;
		geom =
  	  new QuadArray( > ****1.dim,
 		QuadArray.COORDINATES |
  		QuadArray.TEXTURE_COORDINATE_2);
	geom.setCoordinates(0,
		****1.Vec******(****2[i],****3[i],10));
	 geom.setTextureCoordinates(0, 0, tx2.txcoords);
    	grid = new Shape3D(geom, createAppearance(img[i], res));
	grid.setCapability(Shape3D.ALLOW_GEOMETRY_READ);
	trans.addChild(grid);
}
その他はJava3Dプログラムミングバイブルを参考にしています。

512Mメモリーのマシンで安定して動くようにしたく、対応策を
ご教示頂ければ幸いです。
Javaの基本的なところを理解していないだけかもしれませんが
その分はお許し下さい。

★★★☆☆☆★★★☆☆☆★★★☆☆☆★★★☆☆☆
有限会社スカイ・エス・エイッチ http://www.sky.sh/
日医総研日医IT認定サポート事業所
             http://www.sky.sh/orca/
長谷川 司 hasegawa@xxxxxxx
京都市伏見区桃山町立売37-105
TEL 075-622-7385 FAX 075-622-7403
i-mode 090-7354-4305