[英]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時間。 我想看看方法a
或b
使用了多少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.