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