2015-01-09 36 views
-4

我需要多次調用函數getCount($stage)(比如15,因爲$ stage可以有0到14的值)。哪種方法速度快:多次調用函數或使用循環調用它,速度更快?

for ($i=0; $i<15; $i++) 
{ 
    getCount($i); 
} 

OR

getCount(0); 
getCount(1); 
. 
. 
. 
getCount(14); 

我正在處理的當前頁面也有類似的情況。它使用第二種方法,缺乏可讀性。我期待將其改爲第一種方法。在運行時方面會有什麼優勢或劣勢嗎?哪種方法會更快?

+0

爲什麼不檢查你的自我? http://stackoverflow.com/a/9288945/1723893 –

+0

爲什麼不測試它?,它不像你不能或什麼的,但對我來說,做第一種方法似乎更容易,因爲你不必複製粘貼你的功能然後編輯參數。 – Neat

+1

如果這是時間敏感的,它將在getCount()內大部分運行花費時間;循環與內聯調用之間的任何差異都將變得微不足道。 –

回答

1

我不會在意爲此使用循環。您將獲得使用for循環的兩個主要優點。

  1. 您可以動態更改函數被調用的次數,因爲次數不是硬編碼的。
  2. 您可以獲得更易維護的代碼,可以很容易地識別它的功能。

當您使用語言結構(如for循環)時性能明智,性能最低。所以我寧願更容易閱讀和更可維護的代碼在非常非常小的性能提高(如果它甚至引起客戶的注意)

問候。

-1

它們都是相似的。一個只佔用更多的代碼行。

0

Theorically 第一種方法應該慢,因爲有一些額外的檢查和變量。考慮到這是difficoult確切地知道PHP的intepreter什麼優化樣到位裏面發生了什麼,所以這甚至不是真的,但是這並不是因爲許多重要...

Pratically 這是同樣,循環的性能受到的影響非常小,以至於如果你沒有做某種極高性能計算的東西(在php ?!中),兩種方法在速度上完全相同。