一段时间以来,我一直在使用System.nanoTime()
它来衡量代码完成所需的时间。最近这对我来说是一个很大的困扰。有没有其他测量方法?
我在 Eclipse 中运行 Java。
import java.lang.management.ManagementFactory;
import java.lang.management.ThreadMXBean;
long time = ManagementFactory.getThreadMXBean().getThreadCpuTime(Thread.currentThread().getId())
您可能想尝试 StatsD:
https://github.com/youdevise/java-statsd-client
自述文件中的示例:
statsd.recordExecutionTime("bag", 25);
bag
是您想要记录时间的方法。
如果你不喜欢每次都把它打出来,那就安排一堂课来计时。
示例(静态,因为我很懒惰;不想实例化对象):
public static class CodeTimer{
static long start;
public static void start(){
start = System.nanoTime();
}
public static void end(){
System.out.println(System.nanoTime() - end);
//could easily change it to print out time in seconds, with some
//String before it, to return a value, etc.
}
}
这和方法一模一样System.nanoTime()
,只是现在只需要CodeTimer.start()
在开头和CodeTimer.end()
结尾分别键入即可。