簡體   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