下面有兩個迴圈.......(limit2是1000,但其實可以隨便寫。)
下面的效能大概比上面的效能快了兩成左右。
「宣告一塊記憶體位址」然後再「產生一塊實作」,佔去的效能要比「不宣告」多兩成左右。
(所以造成效能差異的關鍵並不在ArrayList本身。)
沒什麼意義。
因為我把迴圈擴大(外頭在加兩層迴圈,)總共執行了1000 * 1000 * 1000次的『「宣告一塊記憶體位址」然後再「產生一塊實作」』,和1000 * 1000 * 1000次的『「不宣告」直接「產生一塊實作」』,這樣才看的出有兩成左右的效能差異。
應該很少有人沒事會去在Java上操作這麼大的ArrayList吧!(即使「有事」也不會作,因為記憶體會掛掉。大家會想別的辦法達到同樣的效果。)
for(int k = 0 ; k < limit2 ; k++){
for(int l = 0 ; l < limit2 ; l++){
Integer irt = new Integer(l);
list1.add(irt);
}
list1.clear();
}
for(int k = 0 ; k < limit2 ; k++){ for(int l = 0 ; l < limit2 ; l++){ list1.add(new Integer(l)); } list1.clear(); }看出差異了嗎?
下面的效能大概比上面的效能快了兩成左右。
「宣告一塊記憶體位址」然後再「產生一塊實作」,佔去的效能要比「不宣告」多兩成左右。
(所以造成效能差異的關鍵並不在ArrayList本身。)
沒什麼意義。
因為我把迴圈擴大(外頭在加兩層迴圈,)總共執行了1000 * 1000 * 1000次的『「宣告一塊記憶體位址」然後再「產生一塊實作」』,和1000 * 1000 * 1000次的『「不宣告」直接「產生一塊實作」』,這樣才看的出有兩成左右的效能差異。
應該很少有人沒事會去在Java上操作這麼大的ArrayList吧!(即使「有事」也不會作,因為記憶體會掛掉。大家會想別的辦法達到同樣的效果。)
沒有留言:
張貼留言