Eng*_*uad 8 java methods execution-time
我正在尝试测量几种方法的执行时间.所以我想多做一个方法而不是重复相同的代码.
这是我的代码:
private void MeasureExecutionTime(Method m)
{
startTime = System.nanoTime();
try
{
m();
}
finally
{
endTime = System.nanoTime();
}
elapsedTime = endTime - startTime;
System.out.println("This takes " + elapsedTime + " ns.");
}
Run Code Online (Sandbox Code Playgroud)
假设我有myMethod(),我怎么MeasureExecutionTime()用来衡量myMethod执行时间?
最简单的方法是传递一个接口.所以像
public interface CommonFuncs {
public void execute();
... more functions
}
Run Code Online (Sandbox Code Playgroud)
然后在你可以拥有将CommonFuncs作为参数的方法.这些方法的实现可以调用该execute方法.
方法不是Java中的第一类对象,因此它们不能作为参数传递.您可以在一个扩展例如Runnable接口的烦人类中使用wrap方法调用:
private void MeasureExecutionTime(Runnable r) {
r.run();
}
...
MeasureExecutionTime(new Runnable() { public void run() { m(); } });
Run Code Online (Sandbox Code Playgroud)