1

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

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

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

4

1 に答える 1

0

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

また、すでに実行中の JVM にエージェントを「挿入」できる新しい「JVM アタッチ API」もあります。したがって、ターゲット マシンが UNI* の場合、GUI から ssh/scp を使用して、scp 転送のスクリプトを作成できます。エージェントをサーバーに接続し、SSH で接続を開始します。

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

于 2011-03-15T09:14:06.387 に答える