我在我的应用程序中使用了几个秒表。它们都是一起创建的,但实际上只有一部分已经运行(由于代码中早期的异常或其他原因)。
在我的应用程序运行之后,我将使用这些秒表创建我的报告。例如,我正在做以下工作:
Stopwatch subStopwatch = Stopwatch.createUnstarted();
Stopwatch mainStopwatch = Stopwatch.createStarted();
try {
// do something 1
subStopwatch.start();
// do something 2
subStopwatch.stop();
} finally {
mainStopwatch.stop();
System.out.printf("Total run time: %s%n", mainStopwatch);
if (!subStopwatch.isRunning()) {
System.out.printf(" including sub run time: %s%n", subStopwatch);
}
}这段代码中的问题是,如果在“执行1”(返回、异常)中发生了什么事情,subStopwatch将被打印出来。
以下解决方案起作用:-使用布尔值指示我启动秒表。-在本地使用秒表,并使用包含我正在寻找的信息的报告机制。
但主要的问题仍然是:我能知道秒表只使用秒表运行吗?
发布于 2014-03-18 12:59:40
您可以查看秒表上的耗用时间:
if (subStopwatch.elapsed(TimeUnit.NANOSECONDS) > 0) {
// it ran
}https://stackoverflow.com/questions/22480032
复制相似问题