2012-04-19 108 views
1

我想知道哪種方法在性能和最佳實踐方面是正確的。速度更快:將一個數組傳遞給一個類,併爲每個循環做一個循環,或者對每個循環做一個類

我有一個URL數組,我刮這些頁面的內容。我有一個單獨的課程來處理這個問題。

當前我將數組列表傳遞給類,然後類通過數組內容循環遍歷每個數組的內容。我相信這是最好的方式。

我想到的另一種方式是循環訪問數組,我將每個URL傳遞給該類。這似乎對我來說會慢一些,但我不確定。

如果兩種方法都可行,那麼他們的pro和con的是什麼?

+3

聽起來像微觀和過早的優化 - 做任何更可讀的...如果你以後會分析你的程序,並看到這部分是botlineck,你可能要考慮重構 - 但在那之前 - 它不值得你有時間修改它。 – amit 2012-04-19 10:09:33

+1

這在性能方面沒有任何意義。循環管理是一個顯微鏡,你的程序中的一小部分。 – 2012-04-19 10:11:27

+1

阿米特說的是真的。如果您解析任何字符串或進行任何網絡通信,您在創建對象時都不會注意到任何差異。因此,只有在出現問題時,才能始終保持最佳狀態並進行優化。 – Thirler 2012-04-19 10:13:06

回答

5

我建議你做你認爲最清晰,最簡單的事情。

傳遞數組可能會稍微快一點,可能會節省幾納秒,但除非您正在做的是幾納秒級的數量級,否則您將不太可能分辨出差異。

+0

非常感謝,我不確定這兩種方法是否會對我的應用程序產生顯着影響。感謝你的回答! – Peck3277 2012-04-19 17:14:04

+0

每個方法的調用都可以加上幾個ns,所以如果你把它叫做十億次就是幾秒鐘。 – 2012-04-19 17:36:40

1

從技術上講,通過每個項目的類會比較慢,由於每頁方法調用的開銷的增加(假設這是你在做什麼):

URLProcessor up = new URLProcessor(); 
for(String url: URLs) { 
    up.process(url); // method call for each URL 
} 

代替:

up.process(URLs); // a single method call 

但是,這很可能不會以明顯的方式影響運行速度,除非該方法被稱爲數百萬次。在一個程序中發生的重量級任務要比這個多得多。