我做一個標杆是這樣的:爲什麼「long var = System.nanoTime()」和「System.nanoTime()」之間的差異在使用時間上有所不同?
for (int i = 0; i < 1000 * 1000; ++i) {
long var = System.nanoTime();
}
需要41毫秒在我的電腦與JDK6.0
後續代碼的成本只有1毫秒!
for (int i = 0; i < 1000 * 1000; ++i) {
System.nanoTime();
}
我想可能是時間長VAR計算成本的,所以我做這樣一個測試:
for (int i = 0; i < 1000 * 1000; ++i) {
long var = i;
}
只需花費1毫秒!
那麼,爲什麼第一個代碼塊太慢? 我是中國人。對不起,我英文很差!
+1這聽起來有多搞笑 –
好的!我明白了。可能是JDK在嘗試擴展循環時做了一些事情。這有所作爲。 – user1632580