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

[Java3Djp:01091] Cylinderなどを繰り返しnewしたときのメモリー増加について



■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■    アイルトン・セナ財団公認 没後5周年メモリアルポスター    ■■
■■                  全世界999セット限定発売中!!!!               ■■
■■                                                              ■■
■■                                                              ■■
■■           http://www.idxconet.co.jp/senna_bleu.html          ■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

はじめまして、大金と申します。

 TransformGroupにNodeを付け加えたり、削除したりを
繰り返す必要があるのですが、
その際、メモリー使用量が増加してしまいます。

 調べてみた結果、com.sun.j3d.utils.geometryにあるBoxを何度もnewすると
メモリーの使用量増加はある程度でとまるのですが、
Cylinder, Cone, Sphereだと、どんどん増えてしまいます。
(実際に試してみたときのソースを最後につけておきます)

 Boxとそれ以外でなぜこのような違いが生じてしまうのでしょう?
これは、仕方のないことなのでしょうか。
それとも、曲線が絡んでいる場合は
何かほかにやらなければならないことがあるのでしょうか。

アドバイスをお願いいたします。

開発環境: WindowsNT
          JDK 1.2.1
          Java3D 1.1.2 SDK (OpenGL version)

---------------------------------------------------------------------------
import com.sun.j3d.utils.geometry.*;

class MemorySize {

        MemorySize() {
        }

        public void start() {
                int roop = 1000;
                for(int count=0; count<roop; count++) {
                        PrintMem();

                        Box aBox = new Box();
                        //Cylinder aCylinder = new Cylinder();
                        //Cone aCone = new Cone();
                        //Sphere aSphere = new Sphere();

                        PrintMem();
                        System.gc();
                        PrintMem();
                }
        }

        static void PrintMem() {
                Runtime runtime = Runtime.getRuntime();
                long free = runtime.freeMemory();
                long total = runtime.totalMemory();
                long use = total - free;
                System.err.println("free: " + free  +  "\ttotal: " + total +
"\tuse: " + use );
        }


        public static void main(String args[]) {
                MemorySize aMemorySize = new MemorySize();
                aMemorySize.start();
        }
}

------------------------------------------------------------------------
明治大学理工学部 機械工学科ロボット工学研究室
                  大金 郁郎
      ioogane@xxxxxxxxxx
------------------------------------------------------------------------