java - C++ jniを介してjvmを作成することは、jarを直接起動するよりもはるかに行き詰まりますか?
巴扎黑
巴扎黑 2017-05-16 13:21:53
0
1
795

C++でJavaプログラムのentry main関数を呼び出すためにjniを使用したいのですが、この方法で作成されたjvmは、javawコマンドで直接実行するよりもはるかにスタックしますが、jvmパラメータの設定は同じです。 C++ で実行する場合、fps は 10 ~ 30 にすぎませんが、jar を直接実行すると 50 ~ 100 に達する可能性があります。
その理由を教えてください。改善する方法はありますか?

リーリー
巴扎黑
巴扎黑

全員に返信(1)
伊谢尔伦

jdk ソース コードで javaw.exe のソース コードを見たことがある場合は、JNI_CreateJavaVM を使用して実装されているため、コードと javaw.exe の違いを比較することができます。

さらに 2 つの可能性が思い浮かびます:

  1. Windows の jvm には serverclient两种类型,性能差别还是挺大的,javaw.exe会自动选择(也可以用-server-client が指定されています) C++ で呼び出す場合、どの jvm.dll を使用するかを指定する必要があるようです。

  2. C++ をコンパイルするときにどの標準ライブラリ (シングルスレッドまたはマルチスレッド) が使用されますか? それが jvm の呼び出しに影響するかどうかは不明です。
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート