The PHP Benchmark

phpbenchmark
The PHP Benchmark 。 有寫 PHP 的話, 這個站一定要看一下的阿! 其中有些 benchmark 好像推翻了先前所讀過的東西。

像是以前讀過說, while 比 for 快, for 又比 foreach 快 (雖然我還是一直用 foreach, 因為 code 比較乾淨 XD), 不過這個 PHP Benchmark 在測試 loop 的結論提到, 其實 foreach 是比較快。

另外就是, 在用 for 的時候到底要不要先算過要 loop 的次數? 以往看到的文章都是說, 在掃某個陣列之前, 要先算出這個陣列的長度, 再開始跑 for loop, 例如像下面這一段。 因為在跑 loop 的時候, 都會再執行過一次陣列長度的計算。

for ($i = 0; $i < count($foo); $i++) {  
    // blah
}```

所以後來我就變成這樣寫 …

$n = count($foo); for ($i = 0; $i < $n; $i++) {
// blah }```

不過 The PHP Benchmark 提出說, 即使預先算好陣列的長度再跑 for loop, 結果是沒差多少的, hmm… 。

覺得這個 The PHP Benchmark 還滿值得一看的, 不過由於這個網站好像上個禮拜, 剛上一些書籤網站曝光, 所以有時候還會碰到 loading 太高, 沒辦法顯示網頁的狀況, 而且這些 benchmark 都是及時算的, 所以結果是會變動的, 也許有時間也自己來跑看看。 另外也可以看看這篇 40 Tips for optimizing your php code ( 話說, 當中的第19點就有提到要先算好陣列的長度再跑 for loop )

tzangms

Read more posts by this author.

Subscribe to Oceanic / 海海人生

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!