一、以毫秒為單位。
long startTime = System.currentTimeMillis(); //獲取開始時間
doSomething(); //測試的代碼段
long endTime = System.currentTimeMillis(); //獲取結束時間
System.out.println("程序運行時間:" + (endTime - startTime) + "ms"); //輸出程序運行時間
二、以納秒為單位。
long startTime=System.nanoTime(); //獲取開始時間
doSomeThing(); //測試的代碼段
long endTime=System.nanoTime(); //獲取結束時間
System.out.println("程序運行時間: "+(endTime-startTime)+"ns");
時間換算:
1小時=60分鍾
1分鍾=60秒
1秒=1000毫秒
1毫秒=1000微秒
1微秒=1000納秒
1納秒=1000皮秒
我們一java中的拼接字符串為例子
一毫米為例,納秒用的方式一模一樣。
1 final int N = 100000; 2
3
4
5 //演示低效的方法拼接字符串
6 long starTime = System.currentTimeMillis(); 7 String str = "*"; 8 for (int i = 0; i < N; i++) { 9 str += "*"; 10
11 } 12 long endTime = System.currentTimeMillis(); 13 System.out.println("+=用時:"+(endTime - starTime)+"毫秒"); 14
15
16 //使用StringBuffer進行字符串拼接(自接對內存進行修改) 大約是前面的(+=)1000倍
17 starTime = System.currentTimeMillis(); 18 StringBuffer str1 = new StringBuffer("*"); 19 for (int i = 0; i < N; i++) { 20 str1.append("*");//拼接 追加
21
22 } 23 endTime = System.currentTimeMillis(); 24 System.out.println("StringBuffer的append用時:"+(endTime - starTime)+"毫秒"); 25
26
27
28 //StringBuffer 的加強版 StringBuilder java1.5以后 ,StringBuilder效率大約是前面的StringBuffer的4 5 倍
29 starTime = System.currentTimeMillis(); 30 StringBuilder str2 = new StringBuilder("*"); 31 for (int i = 0; i < N; i++) { 32 str2.append("*");//拼接 追加
33
34 } 35 endTime = System.currentTimeMillis(); 36 System.out.println("StringBuilder的append用時:"+(endTime - starTime)+"毫秒");
這個程序還不完成請讀者自行補充。
運行結果如下(現在知道用+=來拼接字符串是多么的低效了吧);