Android計算代碼執行時間差


在Android開發當中,往往需要對一些代碼進行性能的測試,通過計算代碼的執行時間差往往是首選的方法,通常我們會選擇System.currentTimeMillis()方法,然後與協調世界時間進行對比,得出執行的時間。但是今天,小編將介紹另外一種方法System.nanoTime(),可以精確測試代碼的執行時間。

 

一、System.nanoTime()簡介

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

 

二、使用方法

1.計算開始時間

long startTime = System.nanoTime();

2.計算執行時間

 

long consumingTime = System.nanoTime() - startTime;


三、System.currentTimeMillis()與System.nanoTime()區別

System.currentTimeMillis()單位是毫秒(ms),而System.nanoTime()是納秒(ns),計算更爲精確。System.nanoTime()返回的可以是任意時間,甚至可以爲負數,但是System.currentTimeMillis()的本質是相當於Date,用於計算相對於1970年1月1日之間的毫秒差。




Good luck!

Write by Jimmy.li





發佈了74 篇原創文章 · 獲贊 76 · 訪問量 71萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章