C++から現在のjvm stats、例えばクラスのロードや現在のヒープサイズをプログラムで取得する方法はありますか?私はそれを行うための多くのツールがあることを知っていますが、私は時々これらの統計を読む別のアプリケーションとこれを統合したいと思います。C++からのjvmヒープサイズのモニタ
答えて
JVMTIは、あなたがそれはまた、「ガベージコレクションスタート」&「ガベージコレクションの完了」イベントを、含まれているヒープトラバーサルなどのような低レベルの機能の負荷で、Javaアプリケーションにネイティブエージェントを添付することを可能にする可能性出発点として使用することができます。
JNIは、Java関数をネイティブコード(および逆も同様)から呼び出すことができます。このテクニックを使用して、ManagementFactoryまたは必要な情報を提供する同様のJavaクラスから情報を取得することができます。 This postには、JNI経由で静的なJavaメソッドを呼び出す方法の完全な例が含まれています。
JVMTIエージェントをjvmでロードする必要があります。後でそれをjvmに添付することはできないようです。 jvmから情報を得るためにJavaコードを使用していないのですか? jvmがロードするためにもっと多くのものを追加しています。あなたは侵入監視していますか? –
@LL:tools.jarを使用して 'com.sun.tools.attach.VirtualMachine'を使用して、実行中のJVMにJVMTIエージェントを添付することができます。http://docs.oracle.com/javase/6 /docs/jdk/api/attach/spec/com/sun/tools/attach/VirtualMachine.html。 問題は、ネイティブエージェントを実行中のJVMに接続するために別のJavaプログラムが必要であり、ネイティブコードからJVMに直接接続するための解決策がまだ見つかりませんでした。 –
[私自身の質問の1つ](http://stackoverflow.com/questions/38588632/attach-native-application-via-jni-to-already-running-jvm-on-linux)、apanginはちょうど私に彼の提案プロジェクト[jattach](https://github.com/apangin/jattach)。ネイティブコードから実行中のJVMに接続することができます。 –
- 1. JVMのヒープサイズの増加について
- 2. ScalaのJVMヒープサイズを増やすには?
- 3. オープンソース、複数のJVMモニタWebアプリケーションオプション?
- 4. Netbeans 7.0.1と7.1間のJVMヒープサイズ割り当ての違いは?
- 5. Linuxでjvmに割り当てられたヒープサイズをチェックする方法
- 6. 本当に大きなJVMヒープサイズを設定するには?
- 7. 64ビットJavaで最大安全なJVMヒープサイズを推定する
- 8. コマンドラインから実行中のJVMの最大ヒープサイズを取得する:JDKツールなし
- 9. デスクトップからインターネットへのデータのモニタ
- 10. CからのJVMメモリの読み込みと解釈
- 11. C#でのコマンドプロンプトの出力のモニタ
- 12. 設定xorgから3までのモニタ
- 13. C#での進捗モニタの実装
- 14. Java JVMプロファイリング、スレッドステータス - 「モニタ」ステータスとはどういう意味ですか?
- 15. 3Dモニタ表示用C++ライブラリ
- 16. Netbeansのヒープサイズjava
- 17. オペレータのオーバーロードによるモニタC++
- 18. javaクラスのバイトコードをjvmからjvmに移動
- 19. JVM上の各アプリケーションにヒープサイズを割り当てることはできますか?
- 20. コマンドラインからのJVMプロパティへのアクセス
- 21. Neo4jヒープサイズ
- 22. 大規模計算後のC++プログラムのヒープサイズの縮小
- 23. AWS LambdaからのJVM GCロギング?
- 24. cmdからゴマストアのヒープサイズを永久に増やす方法は?
- 25. レーキテストのモニタ
- 26. アウトバウンドウェブサービスコールのモニタ
- 27. 5kモニタのEdid
- 28. ビューコントローラ以外のクラスからのジェスチャのモニタ
- 29. AndroidヒープサイズとSoftReferences
- 30. elasticsearch - max_map_count vsヒープサイズ
C++から他のツールを実行し、出力を収集しますか? (あなたが普通の* NIXの世界にいる場合)(答えではなく、ただの回避策) – Ped7g
ツールのほとんどはコマンドラインオプションを持たないGUIベースです。彼らはスイングや何かのJavaで構築されているようです。 –
['jstat'](https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html)は、ヒープ、gc、クラスのロードとJITのコンパイルを監視するためのコマンドライン・ツールです。 ['jcmd'](https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr006.html)' PerfCounter.print'も役立ちます。 – apangin