繁体   English   中英

如何在Java 9中以纳秒级的精度节省时间

[英]How to take elasped time with nanosecond precision in Java 9

Java 9是否提供纳秒精度? 现在可以在Java 9中以毫微秒的精度花费经过的时间吗?

我有一个Java进程,它在接收到消息后将消息发送回去...我想测量从接收消息到将消息写回到TCP套接字之间的时间,即Java进程所花费的精确时间。其TCP套接字程序)的精度至少为微秒。 我期望System.currentTimeMillis()或一些类似的API调用在Java 9中具有纳秒级的精确系统时间(已经读过类似的内容https://bugs.openjdk.java.net/browse/JDK-8068730

自Java 5起, System.nanoTime()就已经存在了。

此方法提供纳秒级精度,但不一定提供纳秒级精度(即值更改的频率)-除了分辨率至少与currentTimeMillis()一样好之外,不做任何保证。

long start = System.nanoTime();
...
long elapsed = System.nanoTime() - start;

如果打算将其用于基准测试,请不要。 请改用合适的测试线束。

似乎这与本身的问题完全无关,您确实在寻找LockSupport.parkNanos ,它将提供纳秒级的精度来制作Thread park。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM