JAVA獲取時間戳,哪個更快
目前獲取毫秒值大概有下面三種方法
- //方法 一
- System.currentTimeMillis();
- //方法 二
- Calendar.getInstance().getTimeInMillis();
- //方法 三
- new Date().getTime();
最近做監控系統,發現程式碼中有前兩種方法,然後突然有了一個想法,到底哪個更快呢?
然後做了如下實驗:
- import java.util.Calendar;
- import java.util.Date;
- public class TimeTest {
- private static long _TEN_THOUSAND=10000;
- public static void main(String[] args) {
- long times=1000*_TEN_THOUSAND;
- long t1=System.currentTimeMillis();
- testSystem(times);
- long t2=System.currentTimeMillis();
- System.out.println(t2-t1);
- testCalander(times);
- long t3=System.currentTimeMillis();
- System.out.println(t3-t2);
- testDate(times);
- long t4=System.currentTimeMillis();
- System.out.println(t4-t3);
- }
- public static void testSystem(long times){//use 188
- for(int i=0;i<times;i++){
- long currentTime=System.currentTimeMillis();
- }
- }
- public static void testCalander(long times){//use 6299
- for(int i=0;i<times;i++){
- long currentTime=Calendar.getInstance().getTimeInMillis();
- }
- }
- public static void testDate(long times){
- for(int i=0;i<times;i++){
- long currentTime=new Date().getTime();
- }
- }
- }
因為很簡單我就不加註釋了,每種方法都執行1千萬次,然後檢視執行結果
- 187
- 7032
- 297
結果發現 System.currentTimeMillis() 這種方式速度最快
Calendar.getInstance().getTimeInMillis() 這種方式速度最慢,看看原始碼會發現,Canlendar因為要處理時區問題會耗費很多的時間。
所以建議多使用第一種方式。
另,System 類中有很多高效的方法,比如,arrayCopy 之類的
相關文章
- JavaScript獲取時間戳JavaScript時間戳
- java獲取時間戳和隨機數Java時間戳隨機
- 如何用Java獲取當前時間戳?Java時間戳
- c++ 獲取當前時間周初凌晨時間戳(獲取當前時間週一凌晨時間戳)C++時間戳
- Laravel 獲取 13 位時間戳Laravel時間戳
- js獲取當天時間戳JS時間戳
- c/c++獲取時間戳C++時間戳
- Java獲取精確到秒的時間戳(轉)Java時間戳
- 常見的Javascript獲取時間戳JavaScript時間戳
- javascript獲取當前的時間戳JavaScript時間戳
- mysql獲取今天、昨天0點時間戳MySql時間戳
- Javascript獲取當前時間戳的方法JavaScript時間戳
- MySQL 時間戳的 獲取 & 轉換為特定時間格式MySql時間戳
- android短視訊開發,Java程式碼獲取當前時間的時間戳AndroidJava時間戳
- PHP獲取當天凌晨時間戳常用程式碼PHP時間戳
- PHP獲取當月起始和結束時間戳PHP時間戳
- js獲取某時間的當天0點時間戳 與某時間的當週週一0點時間戳JS時間戳
- javascript獲取date物件的時間戳程式碼例項JavaScript物件時間戳
- 不同程式語言中獲取現在的Unix時間戳時間戳
- java獲取當前時間Java
- java獲取日期和時間Java
- java時間戳和PHP時間戳的轉換phptime()Java時間戳PHP
- 兩個時間戳的時間差時間戳
- php 獲取今日、昨日、上週、本月的起始時間戳和結束時間PHP時間戳
- Java 獲取本地時間與網路時間Java
- Windows批處理中獲取系統日期、時間戳記Windows時間戳
- ODI基於源表時間戳欄位獲取增量資料時間戳
- C# 獲取時間戳並從10進位制時間戳轉換成16進位制byte陣列C#時間戳陣列
- MySQL時間戳、時間MySql時間戳
- 細說PHP筆記08(第12章)--日期和時間,建立時間戳,mktime轉換unix時間戳,獲取字串時間,獲得日期和時間資訊,日期和時間格式化輸出,microtime()獲取微秒數PHP筆記時間戳字串
- Swift3 根據日期獲取當天零點的時間戳Swift時間戳
- 解決java獲取系統時間差8個小時 專題Java
- js獲取當前時間上一個月前的時間JS
- JavaScript 時間戳JavaScript時間戳
- kafka時間戳Kafka時間戳
- Java unix時間戳 移除秒毫秒部分Java時間戳
- 獲取當前時間戳和隨機數的獲取、Java Random、ThreadLocalRandom、UUID類中的方法應用(隨機數)時間戳隨機JavarandomthreadUI
- Java 給PDF簽名時新增可信時間戳Java時間戳