以下のような単純なJavaプログラムにJRATプロファイラーを使用したいと思います。
public class MainController {
public static int a=4;
public static void main(String[] args) {
for(int i=0;i<30;i++)
{
methodA();
//System.out.println("Hello");
}
}
static void methodA()
{
System.out.println("This is Method A");
methodB();
}
static void methodB()
{
System.out.println("This is Method B");
methodC();
}
static void methodC()
{
System.out.println("This is Method C");
}
}
次のようにJRATコマンドを実行します。java-javaagent:shiftone-jrat.jar cased / test / MainController
次のコマンドを実行して出力を確認します:java -Xmx256M -jar shiftone-jrat.jar
outputfileに表示される内容はあまり良くありません。一部のビューでは、メソッドのシグネチャとメソッド呼び出しの階層を期待していました。出力は次のようになります。
viewer="org.shiftone.jrat.ui.viewer.SimpleTextOutputViewBuilder"
JRat:INFO (May/11 12:32:57,613) (main) RuntimeContextImpl - logfile created
JRat:INFO (May/11 12:32:57,613) (main) RuntimeContextImpl - Running JRat version 1-alpha2 - built on July 31 2006
JRat:INFO (May/11 12:32:57,614) (main) Settings - string 'jrat.factory' = 'org.shiftone.jrat.provider.silent.SilentMethodHandler'
JRat:INFO (May/11 12:32:57,614) (main) RootFactory - JRat creating root handler factory...
JRat:INFO (May/11 12:32:57,618) (JRat-Shutdown) ShutdownRegistry - shutting down...[Transformer[AsmInjectorStrategy(uses http://asm.objectweb.org)], FileOutputRegistry[PrintWriter[001_JRat-LOG.jrat]]]
JRat:INFO (May/11 12:32:57,618) (JRat-Shutdown) ShutdownRegistry - shutting down FileOutputRegistry[PrintWriter[001_JRat-LOG.jrat]]...
JRat:INFO (May/11 12:32:57,618) (JRat-Shutdown) FileOutputRegistry - closeFileOutputs [PrintWriter[001_JRat-LOG.jrat]]
JRat:INFO (May/11 12:32:57,618) (JRat-Shutdown) FileOutputRegistry - closing : PrintWriter[001_JRat-LOG.jrat]
JRat:INFO (May/11 12:32:57,619) (JRat-Shutdown) FileOutputPrintWriter - closing
JRat:INFO (May/11 12:32:57,619) (JRat-Shutdown) FileOutputRegistry - remove PrintWriter[001_JRat-LOG.jrat]
メソッド呼び出しとメソッドシグネチャ、およびメソッド階層(コールグラフなど)を取得する方法を知っている人はいますか?また、インストルメンテーションとインジェクションのオプションはビューアで何をしますか?私はプロファイリングとJRATに不慣れです。助けていただければ幸いです。
ありがとう。