国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

java - c++ 通過jni創建jvm比直接啟動jar要卡很多?

瀏覽:236日期:2024-03-25 14:41:52

問題描述

我想在c++中用jni調用java程序的入口main函數,但是這樣創建的jvm比直接用javaw命令運行要卡很多,但是jvm參數設置的都是一樣的。在c++中運行,fps只有10-30,直接運行jar卻能達到50-100。求教這是什么原因?有什么改進的辦法嗎?

#include <jni.h>using namespace std;extern 'C' { __declspec(dllexport) DWORD NvOptimusEnablement = 1;}int main() { JavaVMOption options[7]; JNIEnv *env; JavaVM *jvm; JavaVMInitArgs vm_args; long status; jclass cls; jmethodID mid; options[0].optionString = '-XX:+UseG1GC'; options[1].optionString = '-XX:-UseAdaptiveSizePolicy'; options[2].optionString = '-XX:-OmitStackTraceInFastThrow'; options[3].optionString = '-Xmn512m'; options[4].optionString = '-Xmx2048m'; options[5].optionString = '-Djava.library.path=natives'; options[6].optionString = '-Djava.class.path=.;libraries.zip;main.jar'; std::memset(&vm_args, 0, sizeof(vm_args)); vm_args.version = JNI_VERSION_1_8; vm_args.nOptions = 7; vm_args.options = options; cout << 'start creat jvm!n'; status = JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args); if (status != JNI_ERR) {cout << 'jvm created successn';cls = env->FindClass('main/Main');if (cls != 0) { mid = env->GetStaticMethodID(cls, 'main', '([Ljava/lang/String;)V'); if (mid != 0) {jclass clz_string = env->FindClass('java/lang/String');if (clz_string != NULL) { jobjectArray result = env->NewObjectArray(2, clz_string, NULL); jstring arg0 = env->NewStringUTF('--accessToken'); jstring arg1 = env->NewStringUTF('14233482b8dbad97617757a5c31d5872'); env->SetObjectArrayElement(result, 0, arg0); env->SetObjectArrayElement(result, 1, arg1); env->CallStaticVoidMethod(cls, mid, result);} }} else { cout << 'class not foundn';}jvm->DestroyJavaVM();return 0; } else {return -1; }}

問題解答

回答1:

你看過jdk源碼中javaw.exe的源碼就知道了,它也是用JNI_CreateJavaVM實現的,所以可以對比下你的代碼跟javaw.exe實現的有什么不同。

另外想到兩種可能:

Windows下jvm有server和client兩種類型,性能差別還是挺大的,javaw.exe會自動選擇(也可以用-server或-client指定),用c++調用好像要指定用哪個jvm.dll的;

c++編譯時用了哪個標準庫(單線程還是多線程),不清楚是否會影響到jvm的調用。

標簽: java
相關文章:
主站蜘蛛池模板: 亚洲精选在线观看 | 国美女福利视频午夜精品 | 国产精品久久久久久久专区 | 一色屋色费精品视频在线看 | 久久99精品这里精品3 | 中文字幕精品在线观看 | 国内精品久久久久影院老司 | 一本久综合久久爱 | 久草资源在线 | 99热久久国产综合精品久久国产 | 亚洲国产成人va在线观看网址 | 欧美二级在线观看免费 | 99久久精品国产免看国产一区 | 国产真人毛片一级视频 | 欧美最爽乱淫视频播放黑人 | 成人在线免费观看视频 | 伊人365影院| 久久精品国产99久久香蕉 | 免费观看国产网址你懂的 | 日本三级韩国三级在线观看a级 | 国产资源在线免费观看 | 日韩国产午夜一区二区三区 | 日本αv | 欧美极品大肚孕妇孕交 | 国产精品免费大片一区二区 | 欧美在线看欧美高清视频免费 | 新版天堂资源中文8在线 | 真人毛片免费全部播放完整 | 成人精品视频一区二区在线 | 日本a级特黄三级三级三级 日本a一级片 | 一级aaaaaa毛片免费 | 400部大量精品情侣网站 | 久久久久久久久久久久久久久久久 | 日本www视频| 亚洲综合网址 | 欧美高清日韩 | 草草影院私人免费入口 | 国产免费一区二区在线看 | 怡红院最新免费全部视频 | 夜色精品国产一区二区 | 国产一二三区视频 |