java - c++ jni를 통해 jvm을 생성하는 것이 jar를 직접 시작하는 것보다 훨씬 더 어렵습니까?
巴扎黑
巴扎黑 2017-05-16 13:21:53
0
1
711

java 프로그램의 진입 main 함수를 C++로 호출하기 위해 jni를 사용하고 싶은데 이렇게 생성된 jvm은 javaw 명령으로 직접 실행하는 것보다 훨씬 막히지만 jvm 매개변수 설정은 동일합니다. C++에서 실행할 때 fps는 10-30에 불과하지만 jar를 직접 실행하면 50-100에 도달할 수 있습니다.
이유가 무엇인지 알려주세요. 이를 개선할 수 있는 방법이 있나요?

으아악
巴扎黑
巴扎黑

모든 응답(1)
伊谢尔伦

jdk 소스 코드에서 javaw.exe 소스 코드를 본 적이 있으면 알 수 있습니다. 또한 JNI_CreateJavaVM을 사용하여 구현되므로 코드와 javaw.exe의 차이점을 비교할 수 있습니다. JNI_CreateJavaVM实现的,所以可以对比下你的代码跟javaw.exe实现的有什么不同。

另外想到两种可能:

  1. Windows下jvm有serverclient两种类型,性能差别还是挺大的,javaw.exe会自动选择(也可以用-server-client

    또 다른 두 가지 가능성이 떠오릅니다.
  2. Windows에는 serverclient라는 두 가지 유형의 jvm이 있습니다. javaw.exe는 자동으로 (를) 선택합니다. -server 또는 -client를 사용하여 지정할 수도 있습니다. C++로 호출할 때 사용할 jvm.dll을 지정해야 하는 것 같습니다.

  3. C++를 컴파일할 때 어떤 표준 라이브러리(단일 스레드 또는 다중 스레드)가 사용됩니까? jvm 호출에 영향을 미칠지 확실하지 않습니다.
🎜 🎜
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!