我正在使用JVisualVM来分析我的Java应用程序。
在我的应用程序中,我使用reflect来运行一些方法。例如:
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时间。我怎样才能做到这一点?感谢。
答案 0 :(得分:0)
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)