簡體   English   中英

如何分析反射調用的Java方法

[英]How to profiling Java methods invoked by reflect

我正在使用JVisualVM來分析我的Java應用程序。

在我的應用程序中,我使用反射來運行一些方法。 例如:

public void a() {}

public void b() {}

public void runMethod() {
    Method m = this.getClass().getMethod("a");
    // or getMethod("b) in some cases
    m.invoke(this, [])
)

在JVisualVM分析中,我只能看到runMethod使用的CPU時間。 我想看看方法ab使用了多少CPU時間。 我怎樣才能做到這一點? 謝謝。

你可以這樣:

        public void a(){               // just for testing
          try {
                Thread.sleep(1);          //OR some for loop to print something
             } catch (InterruptedException e) {

            e.printStackTrace();
             }
         }

           long startTime=System.currentTimeMillis();
            m.invoke(Bidlist[0], null);
            long endTime=System.currentTimeMillis();
            System.out.println("show takes "+(endTime-startTime)+" ms");

因為您沒有在a執行任何操作,所以它會給出0。要理解,我把sleep(1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM