我正在寫一個函數,其中有很多is_int($ var)比較。 但$ var只能有兩種類型:整型或布爾型假。
我想知道哪些功能是最快的:
if (is_int($var)) {}
或
if ($var!==false) {}
或
if (!($var===false)) {}
任何想法?
我正在寫一個函數,其中有很多is_int($ var)比較。 但$ var只能有兩種類型:整型或布爾型假。
我想知道哪些功能是最快的:
if (is_int($var)) {}
或
if ($var!==false) {}
或
if (!($var===false)) {}
任何想法?
顯然答案是
if ($var!==false) {}
比函數快,一個布爾表達式快於兩個布爾表達式。
這是正確的。我的基準測試表明差異約爲40%。百萬次迭代的時間爲0.6秒。所以你可能稱之爲「微不足道」。 – lonesomeday
和一個布爾表達式比兩個布爾表達式更快。
在涉及基準時,不要做任何假設。餘測量:
if ($var!==false) {}
與一個int:1.417324if ($var!==false) {}
用布爾:1.432197if (!($var===false)) {}
與一個int:1.414805if (!($var===false)) {}
用布爾:1.421146嘿,好吧,所以它是微觀優化的任何一種方式。 :) –
做基準幾次。我覺得'1.4'後你可以找到隨機數字:)) – Peter
嘿耶,這就是我的意思。沒有什麼顯着差異,正如你第一次預期的那樣,運營商的數量是兩倍。我想優化器正在認識到這種情況,並將其轉化爲先前的例子。 –
那些是微你不應該擔心的優化。 –
1/10000秒vs 2/10000秒vs 3/10000秒 –
我同意Xeon。你不應該擔心在**腳本語言**這樣的微觀表達** – Peter