1

以下のような単純な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に不慣れです。助けていただければ幸いです。

ありがとう。

4

1 に答える 1

2

最後に、適切な出力が表示されない理由を見つけました。古いバージョンのJRATを使用しました。以下のバージョンを使用すると、適切な出力が表示されます。

http://pages.cpsc.ucalgary.ca/~jacobs/Courses/cpsc331/W07/java/profiler.html

于 2012-05-14T12:11:15.357 に答える