質問

Oracleが提供するJVMTI APIを使用して、プロファイラーを開発する予定です。視覚化のために、エージェントコードの上にGUI(QTフレームワーク)を実装したいと思います。私の最初のJVMTIエージェントはAREADYコンパイルとランニングであり、エージェントをQTプロジェクトに統合し始めました。

今、私はエージェントをGUIと結合する方法の問題に直面しています。 GUIはエージェント内で起動する必要がありますか?たとえば、agent_onload関数の場合は?

長期的には、GUIからプロファイリングを開始することですが、それを実現する方法を想像することはできません。

役に立ちましたか?

解決

まあ..あなたは最も明白なものがソケットベースの通信です。プロファイリングユースケースの大部分には、サーバー上のリモートヘッドレスJVMが含まれると仮定する必要があります。私のプロファイラーでは、エージェントと同じマシン上の小さな開始/ストップ/コントロールユーティリティでヘッドレスを操作できます。データはサーバーで収集され、視覚化のためにクライアントに転送されます。また、エージェントを使用してリモート(またはローカル)JVMを起動し、完全なGUIからソケットを越えてリスニングエージェントに接続することもできます。そのソケットをクライアントに収集します。

また、新しい「JVMアタッチAPI」もあります。これにより、エージェントを既に実行中のJVMに「挿入」することができます。したがって、ターゲットマシンがUNI*の場合、GUIからSSH/SCPを使用し、スクリプトを使用してSCP転送をスクリプト化できます。サーバーとSSHのエージェントは、添付を開始します。

だから...ソケット(IPおよび/またはドメイン)とヘッドレスコントロール/コレクションクライアントのGUIからそのコードを再利用

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top