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 OS、VS2008を使用しています。
コンソールを使用してJavaを実行するのと同じことです。割り当てられたメモリを使用しています。すばやく実行できますか?
更新された説明:
次の 2 つの方法で試した、メモリ集約型の Java アプリケーションがあります。
1. JNI を使用した C++ アプリケーションから。
2.コマンドプロンプトから直接実行。
どちらの場合も、jvm に 60GB のヒープ メモリ サイズを割り当てました。上記の 2 つの実行方法には、次の違いがあることがわかりました。
1. JNI を使用する 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);