【发布时间】:2012-12-11 06:18:48
【问题描述】:
i am calling java code in c++ using jni ,i alloted 60GB as max heap memory ,but while running its using less memory because of that its taking much time .
我使用的是windows7操作系统,VS2008。
我使用控制台运行 java 也是一样,它使用分配的内存,并且执行速度很快 你能帮我解决这个问题吗?
更新说明:
我们有一个内存密集型 Java 应用程序,我们尝试了以下两种方式。
1.来自使用 JNI 的 c++ 应用程序。
2.直接通过命令提示符执行。
在这两种情况下,我们都为 jvm 分配了 60GB 的堆内存大小。我们发现以上两种执行方式的区别如下。
使用 JNI 的 1.c++ 应用程序最高可达 40GB 内存。(执行速度慢)
2.通过命令提示符执行达到约60GB内存。(快速执行)
内存使用量不同的原因可能是什么??
JVM初始化:
JavaVMInitArgs vm_args;
JavaVMOption options[3];
options[0].optionString = "-Djava.class.path=c:\\Application\\bin-7.0\\morpher\\app.jar;";
options[1].optionString = "-Xms1024m";
options[2].optionString = "-Xmx50000m";
vm_args.version = JNI_VERSION_1_6;
vm_args.nOptions = 3;
vm_args.options = options;
vm_args.ignoreUnrecognized = 0;
JNI_GetDefaultJavaVMInitArgs(&vm_args);
int ret = JNI_CreateJavaVM(jvm, (void**)&env, &vm_args);
【问题讨论】:
标签: java c++ java-native-interface