[英]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.