Bla*_*man 12 java performance nanotime
我创建了一个监视请求长度的过滤器.
long start = System.nanoTime();
...
long end = System.nanoTime();
Run Code Online (Sandbox Code Playgroud)
我怎么能从这里得到毫秒数?
Chr*_*her 43
(end - start) / 1000000
Run Code Online (Sandbox Code Playgroud)
1微秒= 1000纳秒
1毫秒= 1000微秒
请注意,结果将向下舍入,但您通常无法获得真正的纳秒精度(精度取决于操作系统).来自Javadoc nanoTime()
:
该方法提供纳秒精度,但不一定是纳秒精度.
小智 11
另请注意,您可以使用TimeUnit类来帮助进行转换.对于旧版本的Java,以下代码可能是将处理时间转换为其他时间格式的示例:
long startTime = System.nanoTime();
//Processing in-between.
long endTime = System.nanoTime();
long duration = endTime - startTime;
duration = TimeUnit.SECONDS.convert(duration, TimeUnit.NANOSECONDS);
Run Code Online (Sandbox Code Playgroud)
请注意,较新版本的Java在TimeUnit类中具有快捷方式.
上面的样本会将纳秒变成几秒钟.另请注意,这会截断它,因此您会失去一些精度.因此,如果切换到分钟,那么您将失去秒的精度.如果您想获得"12分32秒"的结果,则必须使用此解决方案进行进一步处理.
归档时间: |
|
查看次数: |
31186 次 |
最近记录: |