C++でJavaプログラムのentry main関数を呼び出すためにjniを使用したいのですが、この方法で作成されたjvmは、javawコマンドで直接実行するよりもはるかにスタックしますが、jvmパラメータの設定は同じです。 C++ で実行する場合、fps は 10 ~ 30 にすぎませんが、jar を直接実行すると 50 ~ 100 に達する可能性があります。
その理由を教えてください。改善する方法はありますか?
伊谢尔伦2017-05-16 13:23:53
jdk ソース コードで javaw.exe のソース コードを見たことがある場合は、JNI_CreateJavaVM
を使用して実装されているため、コードと javaw.exe の違いを比較することができます。
さらに 2 つの可能性が思い浮かびます:
Windows の jvm には server
和client
两种类型,性能差别还是挺大的,javaw.exe
会自动选择(也可以用-server
或-client
が指定されています) C++ で呼び出す場合、どの jvm.dll を使用するかを指定する必要があるようです。