国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

System.nanoTime()和System.currentTimeMillis()區別 (還是直接看API比較清晰)

2019-11-09 19:54:49
字體:
來源:轉載
供稿:網友

先來看看System的靜態方法nanoTime()

public static long nanoTime()返回最準確的可用系統計時器的當前值,以毫微秒為單位。 

此方法只能用于測量已過的時間,與系統或鐘表時間的其他任何時間概念無關。返回值表示從某一固定但任意的時間算起的毫微秒數(或許從以后算起,所以該值可能為負)。此方法提供毫微秒的精度,但不是必要的毫微秒的準確度。它對于值的更改頻率沒有作出保證。在取值范圍大于約 292 年(263 毫微秒)的連續調用的不同點在于:由于數字溢出,將無法準確計算已過的時間。

例如,測試某些代碼執行的時間長度:

   long startTime = System.nanoTime();   // ... the code being measured ...   long estimatedTime = System.nanoTime() - startTime; 

返回: 系統計時器的當前值,以毫微秒為單位。 從以下版本開始: 1.5

currentTimeMillis

public static long currentTimeMillis()返回以毫秒為單位的當前時間。注意,當返回值的時間單位是毫秒時,值的粒度取決于底層操作系統,并且粒度可能更大。例如,許多操作系統以幾十毫秒為單位測量時間。

請參閱 Date 類的描述,了解可能發生在“計算機時間”和協調世界時(UTC)之間的細微差異的討論。

返回: 當前時間與協調世界時 1970 年 1 月 1 日午夜之間的時間差(以毫秒為單位測量)。 另請參見: Date使用例子:

public static void main(String[] args) {    //首先我們創建一個大的list,里面的元素都是唯一的:    int max = 1000000;    List<String> values = new ArrayList<>(max);    for (int i = 0; i < max; i++) {        UUID uuid = UUID.randomUUID();        values.add(uuid.toString());    }    //我們測量一下對這個集合進行排序所使用的時間。    //順序排序    long t0 = System.nanoTime();    long count = values.stream().sorted().count();    System.out.PRintln(count);    long t1 = System.nanoTime();    long millis = TimeUnit.NANOSECONDS.toMillis(t1 - t0);    System.out.println(String.format("sequential sort took: %d ms", millis));    //并行排序    long tt0 = System.nanoTime();    long countt = values.parallelStream().sorted().count();    System.out.println(countt);    long tt1 = System.nanoTime();    long milliss = TimeUnit.NANOSECONDS.toMillis(tt1 - tt0);    System.out.println(String.format("parallel sort took: %d ms", milliss));}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 柏乡县| 淮北市| 封丘县| 南和县| 三都| 甘南县| 元江| 政和县| 清河县| 桐乡市| 宜丰县| 贺州市| 永泰县| 通榆县| 新余市| 新田县| 浦东新区| 祁门县| 西畴县| 淮阳县| 汝阳县| 甘泉县| 池州市| 稻城县| 原平市| 梓潼县| 夏津县| 昌都县| 开化县| 奉节县| 阿瓦提县| 冷水江市| 长武县| 恩平市| 牡丹江市| 鄯善县| 沂南县| 宾川县| 宁乡县| 米林县| 长白|