在批处理Java应用程序(一个运行在控制台上的应用程序)中,我必须记录执行特定任务所需的时间(一些操作是查询执行)。
因此,我认为要做到这一点,我可以在任务开始之前检索日期和时间,并在任务完成后再取一次,然后从第二个值中减去第一个值,然后使用log4j将结果打印到日志文件中。
但是,如果它是一个好的解决方案是正确的,我如何才能正确地获得这个值(日期和时间)?
有什么更聪明的方法吗?
发布于 2015-03-11 15:50:39
下面是一个以毫秒为单位的结果示例:
public Connection getConnection(String inConnectionType) throws TSPException {
long start = System.nanoTime();
Connection conn = null;
try {
DataSource dataSource = getDataSource(inConnectionType);
conn = dataSource.getConnection();
} catch (SQLException e) {
log.error(e);
throw new TSPException(e);
}
long end = System.nanoTime();
double duration = (end - start) / 1000000.0;
log.debug("Duration getting external db connection=" + duration);
return conn;
}发布于 2015-03-11 16:03:26
就像约翰建议的那样,你可以看看如何度量Java中经过的时间?
如果您想测量一些任务,可能使用System.nanoTime(),存储值和执行计算对您来说就足够了。
如果您需要更复杂的东西,我建议您看看java.time (Java 8)或尤达-时间。两者都为衡量时间长短提供了期限和期限的概念。
https://stackoverflow.com/questions/28991060
复制相似问题