在测试运行时时,我按以下方式使用 System.nanotime():
startTime = System.nanotime();
// some statements
System.out.println("Runtime: " + (System.nanoTime() - startTime));
有没有办法将这个测试模型重用于我程序中的其他代码块?换句话说,我可以将其创建为方法并在测试期间将其他方法传递给它吗?
最佳答案
是的,你可以,但它比你的方法更复杂:
time(new Runnable() {
public void run() {
System.out.println("statements");
}
});
static void time(Runnable r) {
long startTime = System.nanoTime();
r.run();
System.out.println("Runtime: " + (System.nanoTime() - startTime));
}
在 Java 7 中,这会变得更简单(我省略了“Measure”实现):
try (Measure m = new Measure()) {
System.out.println("statements");
}
顺便说一句,使用System.nanoTime()
比使用System.currentTimeMillis()
更好,不仅因为前者更准确,而且因为稍后会在夏令时更改(或其他系统时间更改)时出现问题。
关于java - 在 Java 中,我可以使用单个方法作为其他方法的计时器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5590903/