我有一個需要運行幾百萬次的循環;準確的說是10,967,700。在這,我做了一些檢查,包括:最快的方法來比較php中的數字
數1小於2號 1號小於或等於3號 4號大於5號
我想知道是否有是我可以執行的任何優化/調整,以便更快地執行這些檢查。或者這是一個荒謬的questino?
我有一個需要運行幾百萬次的循環;準確的說是10,967,700。在這,我做了一些檢查,包括:最快的方法來比較php中的數字
數1小於2號 1號小於或等於3號 4號大於5號
我想知道是否有是我可以執行的任何優化/調整,以便更快地執行這些檢查。或者這是一個荒謬的questino?
根據您的片段,我建議你以下變化:
使用for
-loop代替foreach
這樣的例子:
$key = array_keys($aHash);
$size = sizeOf($key);
for ($i=0; $i<$size; $i++) $aHash[$key[$i]] .= "a";
這foreach
-loop是4.7倍速度較慢。 (見的例子在端部 - http://www.phpbench.com/)
foreach($aHash as $key=>$val) $aHash[$key] .= "a";
以及檢查的值被設置的empty()
-method略微快於isset()
。
使用if and elseif (using ===)
也快於(==)
我希望我可以幫助你。
(資料來源:http://www.phpbench.com/)
我們可以給你一些優化的投入,如果我們將有機會看到一些代碼...否則普通'>''<'''===(和等等)可能是最快和唯一的比較元素。您還可以嘗試if/else和switch/case之間的性能差異。 – wildhaber 2013-02-12 23:51:54
確保數字實際上是整數,而不是字符串表示。應該節省幾個週期類型雜耍。 – 2013-02-12 23:53:38
偉大的一點麥克B.在我的情況下,一切都是一個整數。 – onassar 2013-02-12 23:56:22