Jni对象在java循环中增长内存

时间:2014-11-04 11:23:16

标签: java memory java-native-interface

在Java循环中创建JNI对象时,内存在Java进程中不断增长。

示例:

class Nat{
    native void hello();
    public static void main(String[] args){
        while(true){
           //creating jni object
           Nat nat = new Nat();
           // in this loop memory growing
       }
    }

    static{
        System.loadLibrary('Hello')
    }
}

JNIEXPORT void JNICALL Java_Nat_hello(JNIEnv *, jobject){
    //NOTHING CODE.......................
}

1 个答案:

答案 0 :(得分:0)

每个循环传递都会创建一个需要内存的新Nat对象。由于循环始终在运行并且没有中断条件,因此内存增长非常快。