使用 Java 8 lambdas 编写通用方法来计时任何其他方法
Writing a generalized method to time any other method using Java 8 lambdas
我一直在尝试找出是否有一种方法可以编写一个方法,该方法将 Java 8 方法引用作为输入,运行 那个方法和 returns 运行 花费的时间。
public static long time(Runnable c) {
long start, end;
start = System.currentTimeMillis();
c.run();
end = System.currentTimeMillis();
return (end - start);
}
这是我目前所拥有的,但这只适用于没有参数的方法...我正在寻找可以与也可以采用参数的方法一起使用的方法。这可能吗?
好吧,解决方法是将您的方法包装在 lambda 中
int foo =...
Object bar = ...
long elapsed = time( () -> myMethod(foo, bar));
我一直在尝试找出是否有一种方法可以编写一个方法,该方法将 Java 8 方法引用作为输入,运行 那个方法和 returns 运行 花费的时间。
public static long time(Runnable c) {
long start, end;
start = System.currentTimeMillis();
c.run();
end = System.currentTimeMillis();
return (end - start);
}
这是我目前所拥有的,但这只适用于没有参数的方法...我正在寻找可以与也可以采用参数的方法一起使用的方法。这可能吗?
好吧,解决方法是将您的方法包装在 lambda 中
int foo =...
Object bar = ...
long elapsed = time( () -> myMethod(foo, bar));