比較java右移運算與除法運算速度
阿新 • • 發佈:2018-11-25
這裡用到的時間單位是毫微秒。(1秒=10^3毫秒=10^6微秒=10^9毫微秒 )
執行的時間如下
(計算時間,每次計算出來的時間或多或少都會有差別)
(times)運算多少次 | time1(運算花費的時間)【單位:微秒】 | time1(運算花費的時間)【單位:微秒】 |
10000 | 64 | 63 |
100000 | 686 | 657 |
1000000 | 1600(不穩定) | 800(不穩定) |
10000000 | 1700 | 1200(不穩定) |
100000000 | 1600 | 1100 |
結論
右移運算比除法稍微快一點,但是之間的差距用肉眼是看不出來的
程式碼:
public static void main(String[] args) { int s = 0; long temp = System.nanoTime(); int times=10000; for (int i = 0; i < times; i++) { s = 40 / 2; } long time1=(System.nanoTime() - temp)/1000; temp = System.nanoTime(); for (int i = 0; i < times; i++) { s = 40 >> 1; } long time2=(System.nanoTime() - temp)/1000; System.out.println(time1+" "+time2); }