2011-11-17 74 views
0

我正在寫一個函數,其中有很多is_int($ var)比較。 但$ var只能有兩種類型:整型或布爾型假。

我想知道哪些功能是最快的:

if (is_int($var)) {} 

if ($var!==false) {} 

if (!($var===false)) {} 

任何想法?

+2

那些是微你不應該擔心的優化。 –

+0

1/10000秒vs 2/10000秒vs 3/10000秒 –

+0

我同意Xeon。你不應該擔心在**腳本語言**這樣的微觀表達** – Peter

回答

6

顯然答案是

if ($var!==false) {} 

比函數快,一個布爾表達式快於兩個布爾表達式。

+0

這是正確的。我的基準測試表明差異約爲40%。百萬次迭代的時間爲0.6秒。所以你可能稱之爲「微不足道」。 – lonesomeday

1

和一個布爾表達式比兩個布爾表達式更快。

在涉及基準時,不要做任何假設。餘測量:

  • if ($var!==false) {}與一個int:1.417324
  • if ($var!==false) {}用布爾:1.432197
  • if (!($var===false)) {}與一個int:1.414805
  • if (!($var===false)) {}用布爾:1.421146
+0

嘿,好吧,所以它是微觀優化的任何一種方式。 :) –

+0

做基準幾次。我覺得'1.4'後你可以找到隨機數字:)) – Peter

+0

嘿耶,這就是我的意思。沒有什麼顯着差異,正如你第一次預期的那樣,運營商的數量是兩倍。我想優化器正在認識到這種情況,並將其轉化爲先前的例子。 –