1. 程式人生 > >java-檢測程式執行時間

java-檢測程式執行時間

在進行演算法學習的時候,要比較不同演算法之間的優劣就要考慮執行速度的問題。如何檢測程式的執行時間就是我們必須要了解的一個問題。這裡來說一下。

0.實現思路

一般的實現思路就是獲取系統時間,計算要測試程式執行前後的時間差,因為系統時間是以毫秒(millisecond)為單位,因此可以獲得相對精確的執行時間。如果程式實在比較小,那就迴圈多次執行,比如10000次,這樣可以更加清晰的看出執行速度。

1、獲取系統時間

獲取系統時間,用的是System.currentTimeMillis(). 看一下官方API給出的說明:

static long currentTimeMillis()
Returns the current time in milliseconds.
//返回當前的時間,單位是毫秒。
//詳細介紹
Note that while the unit of time of the return value is a millisecond, the granularity of the value depends on the underlying operating system and may be larger. For example, many operating systems measure time in units of tens of milliseconds.
Returns:
the difference, measured in milliseconds, between the current time and midnight, January 1, 1970 UTC.

該方法返回值是從1970年1月1日凌晨到此時刻的毫秒數!(可以算算long最多可以計時計到啥時候,哈哈!)

這裡注意一下,我們一般輸出日期時間經常會用到Date這個類。例如:

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設定日期格式
System.out.println(df.format(new Date()));// new Date()為獲取當前系統時間

其API表述如下:

The class Date represents a specific instant in time, with millisecond precision.

注意到Date類的時間精度也是毫秒級的。可以實現我們上面給出的程式碼一樣的效果。實際上,檢視一下Date類的原始碼就會發現:

public Date()
  {
    this(System.currentTimeMillis());
  }

也就是說Date類也是呼叫了系統的時間,並對其進行了一系列封裝處理。因此我們如果需要詳細的資訊,比如年份月份等可以使用Date類。而此處我們只需要知道毫秒差就可以了,就沒必要用date類了,避免浪費。

2. 實現程式碼

程式碼實現就比較簡單了,直接上程式碼:

long starTime=System.currentTimeMillis();
//計算迴圈10000的時間
for(int i=0; i<10000; i++) { //your code; } long endTime=System.currentTimeMillis(); long Time=endTime-starTime; System.out.println(Time);

這樣就可以得到程式執行的時間了,注意單位是毫秒。
下一篇將會給出兩個實際應用的例子。

相關推薦

java-檢測程式執行時間

在進行演算法學習的時候,要比較不同演算法之間的優劣就要考慮執行速度的問題。如何檢測程式的執行時間就是我們必須要了解的一個問題。這裡來說一下。 0.實現思路 一般的實現思路就是獲取系統時間,計算要測試程式執行前後的時間差,因為系統時間是以毫秒(millis

Java 計算程式執行時間

第一種 以ms為單位 long startTime = System.currentTimeMillis(); //獲取開始時間的時間戳 /*中間為要計算執行時間的程式碼段*/ long endTime = System.currentTimeMillis

java獲取程式執行時間

第一種是以毫秒為單位計算的。   Java程式碼   //虛擬碼   long startTime=System.currentTimeMillis();   //獲取開始時間   doSomeThing();  //測試的程式碼段   long endTime=

JAVA:統計程式執行時間的兩種方法

第一種用Date類 import java.io.*; import java.util.*; public class 計時 { public static void main(String[] args) { Date date1 = new Date();  

java中測試程式執行時間

好了,師弟師妹們軍訓著,從1.05號放假到現在,我也無所事事了一個星期了,找不到人生的目標,鹹魚地送走了宿舍裡的最後一個兄弟,從上一個學期的放假時,就暗暗下定決心,不要自己最後一個人走,因為這會讓我想到孤獨,想到高三畢業後,離校的那一天,自己拿著行李,回望另一畔的學校,內心

java程式執行時間

在程式的開始部分與結束部分分別加上獲取當前時間的程式碼,用結束時間減去開始時間就是程式執行所需的時間。 long startTime = System.currentTimeMillis();

Java》完成一個“計算出程式執行時間”的應用程式

一、任務目標     完成一個 java application應用程式,計算執行十億次空迴圈所需要的時間,並在不同cup主頻的計算機上執行此程式,比較其運算所需時間有何差別。   二、currentTimeMillis方法     currentTimeMil

檢視Java程式執行時間

(1)以毫秒為單位: long startTime_1 = System.currentTimeMillis(); long endTime_1 = System.currentTimeMi

Java 程式執行時間計算

以毫秒為單位 long startTime = System.currentTimeMillis(); //獲取開始時間 doSomething(); //測試的程式碼段 long endTime = System.currentTimeMil

java.util.concurrent多執行緒簡單demo及計算多執行程式執行時間

public void doMain(String dir) { // 獲取開始時間 long startTime = System.currentTimeMillis(); try { File file = new File(dir);

常用的三種獲取程式執行時間的方法

chrono 參考教程:http://www.cnblogs.com/jwk000/p/3560086.html #include <chrono> //C++11 chrono::steady_clock::time_point t1 = chro

程式執行時間

要獲得一個C語言程式的執行時間,常用的方法是呼叫標頭檔案time.h,其中提供了clock()函式,可以捕捉從程式開始執行到clock()被呼叫時所 耗費的時間。這個時間單位是clock tick,即“時鐘打點”。同時還有一個常數CLK_TCK,給出了機器時鐘每秒所走的時鐘打點數。於是為了獲 得一個

PHP獲取程式執行時間

/** * @desc 獲取程式執行時間 * @param bool $time @傳此引數,代表獲取執行時間,不傳返回當前時間 * @param bool $format @當傳第一個引數時,此引數才起作用:是否返回字串ms * @param bool $numbe

C++程式執行時間

#include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<vector> #include<ctime> using

程式執行時間(15分)

要獲得一個 C 語言程式的執行時間,常用的方法是呼叫標頭檔案 time.h,其中提供了 clock() 函式,可以捕捉從程式開始執行到 clock() 被呼叫時所耗費的時間。這個時間單位是 clock tick,即“時鐘打點”。同時還有一個常數 CLK_TCK,給出了機器時鐘每秒所走的時鐘打點數。於

python程式執行時間

方法1 import datetime starttime = datetime.datetime.now() #long running endtime = datetime.datetime.now() print (endtime - starttime)

time 輸出的程式執行時間

time 輸出的程式執行時間 real real 時間指的是從程序開始建立執行到執行完成整個的系統時間。這個時間可能包括其它程序執行的時間,以及程序掛起的時間。 user 在使用者態中執行程式碼花費的 cpu 時間。 sys 在核心態中執行的程式碼花費的

程式執行時間(15) 時間限制 1000 ms 記憶體限制 32768 KB 程式碼長度限制 100 KB 判斷程式 Standard (來自 小小)

題目描述 要獲得一個C語言程式的執行時間,常用的方法是呼叫標頭檔案time.h,其中提供了clock()函式,可以捕捉從程式開始執行到clock()被呼叫時所 耗費的時間。這個時間單位是clock tick,即“時鐘打點”。同時還有一個常數CLK_TCK,給出了機器時鐘每秒

1026 程式執行時間 (15 分) (floor函式)

要獲得一個 C 語言程式的執行時間,常用的方法是呼叫標頭檔案 time.h,其中提供了 clock() 函式,可以捕捉從程式開始執行到 clock() 被呼叫時所耗費的時間。這個時間單位是 clock

PAT B1026 程式執行時間

本地編譯環境 系統:win7 64位; C/C++環境:Clion2018,編譯器cygwin。 Java環境:IDEA2018,編譯器jdk-8u172。 Python環境:pycharm,編譯器Anaconda3:Python3.6。 題目 本題也是演算法筆