2013-02-12 52 views
0

我有一個需要運行幾百萬次的循環;準確的說是10,967,700。在這,我做了一些檢查,包括:最快的方法來比較php中的數字

數1小於2號 1號小於或等於3號 4號大於5號

我想知道是否有是我可以執行的任何優化/調整,以便更快地執行這些檢查。或者這是一個荒謬的questino?

+1

我們可以給你一些優化的投入,如果我們將有機會看到一些代碼...否則普通'>''<'''===(和等等)可能是最快和唯一的比較元素。您還可以嘗試if/else和switch/case之間的性能差異。 – wildhaber 2013-02-12 23:51:54

+2

確保數字實際上是整數,而不是字符串表示。應該節省幾個週期類型雜耍。 – 2013-02-12 23:53:38

+0

偉大的一點麥克B.在我的情況下,一切都是一個整數。 – onassar 2013-02-12 23:56:22

回答

0

根據您的片段,我建議你以下變化:

使用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/

+0

我會放棄這一點,但我不確定它適用於我設置的'for'循環的效果。如果你有一個使用這些變量的例子,我就會全神貫注。我會嘗試一下。謝謝。 – onassar 2013-02-13 15:29:59

+0

http://php.net/manual/en/control-structures.foreach.php通知'foreach'結構只能用於數組和對象 – onassar 2013-02-13 15:33:55

相關問題