一个关于jni的下OutOfMemory的问题

lemon_zc1949 2005-12-13 03:50:01
我用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;
...全文
129 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lemon_zc1949 2005-12-13
  • 打赏
  • 举报
回复
非常感谢.加分.
kingfish 2005-12-13
  • 打赏
  • 举报
回复
env->DeleteLocalRef(ja);

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧