Было бы хорошо, если бы у java была лучшая функциональная поддержка, чтобы действие, которое нужно измерить, можно было заключить в блок:
measure {
// your operation here
}
В Java это может быть сделано анонимными функциями, которые выглядят слишком многословно
public interface Timer {
void wrap();
}
public class Logger {
public static void logTime(Timer timer) {
long start = System.currentTimeMillis();
timer.wrap();
System.out.println("" + (System.currentTimeMillis() - start) + "ms");
}
public static void main(String a[]) {
Logger.logTime(new Timer() {
public void wrap() {
// Your method here
timeConsumingOperation();
}
});
}
public static void timeConsumingOperation() {
for (int i = 0; i<=10000; i++) {
System.out.println("i=" +i);
}
}
}