一个关于jni的下OutOfMemory的问题
我用VC写了个使用jni api的程序,里面用到了NewIntArray(), 但不知道为什么当创建到一定时候的时候就创建不了.代码片断:
for( int i = 0; i < 1000; i++ ){
jintArray ja = env->NewIntArray(1024*1024);
if( ja != 0 ){
printf("array %d \r\n", j);
j++;
jboolean isCopy;
jint *pixelsArray = env->GetIntArrayElements (ja, &isCopy);
if (pixelsArray == 0)
{
printf("OutOfMemory");
break;
}
env->ReleaseIntArrayElements(ja, pixelsArray,0);
}else{
break;
}
}
好像只能创建13个.
JavaVM创建参数是:
JDK1_1InitArgs vm_args; /* JDK 1.1 VM initialization arguments */
vm_args.version = JNI_VERSION_1_2; /* New in 1.1.2: VM version */
JNI_GetDefaultJavaVMInitArgs(&vm_args);
vm_args.classpath = ".\\";
vm_args.debugging = 1;
vm_args.enableClassGC=1;
vm_args.enableVerboseGC=1;
vm_args.maxHeapSize = 10;
vm_args.maxHeapSize = 1024;