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