2014-02-21 29 views
3

我有幾個類處理對象,數組和字符串。PHP做了很多類型檢查會減慢你的代碼?

我想知道什麼對性能的影響是做類型檢查,如:

is_object(),is_array()和IS_STRING();

我在代碼中使用了很多。

在被調用數千次的函數中,假設傳遞的參數是正確的類型還是檢查以防止錯誤更好?

是否有任何資源可以查看php函數的性能權重?

+1

測試它們。衡量有沒有他們的表現。但可能:你微調優化 – Nanne

+0

[gettype()](http://www.php.net/manual/en/function.gettype.php)上的'switch'可能會給你一個更快的選擇,但是你是否需要測試性能以查看它是否有幫助 –

+1

如果可能的話,函數簽名中的類型提示對於數組和對象來說可能是更好的選擇。 – deceze

回答

2

你可以找出你自己。

在腳本開始時以毫秒爲單位存儲當前時間,運行一個類型檢查幾千次的循環,並將腳本末尾的時間與腳本開始時的時間進行比較。

+0

'$ _SERVER ['REQUEST_TIME_FLOAT']'將包含該起始值。 –

+0

我將自己對函數執行一些檢查,以查看刪除檢查會對性能產生的影響。傑克在上面的答案中的評論實際上是通過與phpbench的鏈接確定了我想知道的。如果有多種方法來做同樣的事情,我想養成使用性能最低的方法的習慣,特別是在編寫非常頻繁調用的代碼時。 –

2

我更喜歡使用這些檢查。 避免這種檢查可以節省幾毫秒。但是如果你沒有檢查它,就有可能導致網頁崩潰或其他問題。

所以最好避免這些問題。如果您重複與數據庫相關的任何功能,可能會導致性能問題。但這些小檢查不會導致性能問題。

讓我們先考慮一下,然後再作出決定。