关于php的文章,一篇关于 PHP 性能的文章
一篇關于 PHP 性能的文章
昨晚清理瀏覽器收藏夾網(wǎng)址時, 發(fā)現(xiàn)了 http://www.phpbench.com/, 想起來應該是 2015 年發(fā)現(xiàn)的一個比較性能的文章, 我就點進去看了看, 發(fā)現(xiàn)還是全英文耶, 剛好最近一直在讀一些英文文檔和資料, 就想著把它翻譯下來, 以供其他中國開發(fā)更有效率的閱讀, 好多自我的口語化, 見諒~
PHPBench.com 想用一種直觀的方式去陳述一個事實, 讓人們明白不是每段 PHP 代碼都能以相同的方式運行你可能會對產生的結果感到驚訝, 但是不要懷疑 --it's ok 一些被測試統(tǒng)計過的代碼樣例的頁面也被創(chuàng)建了, 你可以下載然后在自己的服務器環(huán)境運行測試, 你可以結合自己的想法, 對這些實例進行一頓操作~~
注意: 你要時刻記住要多刷新幾次頁面來得到正確的結果, 每次刷新的時候, 數(shù)字都會急劇變化, 我認為這是因為 PHP 的內存垃圾回收機制是隨機的并且這個機器上其他的進程對此也有影響
注意: 為了方便我就簡單的使用了 microtime()函數(shù)來測試這用例如果使用了更高級的東西, 我擔心一些初級 phper 理解不了
循環(huán)讀取數(shù)據(jù)的比較
foreach() vs. for vs. while(list() = each())
循環(huán)讀取一個哈希數(shù)組最好的方式是怎樣的?
給出一個含有 100 個元素的哈希數(shù)組, 每個鍵值對是由 24 字節(jié)的鍵名和 10k 的數(shù)據(jù)組成
結論:
上面所有結果中, 我發(fā)現(xiàn), foreach()循環(huán)比 while()和 for()強一檔的水平有一點值得注意下, 所有樣例中每個循環(huán)開始的時候我都會使用 reset()
由于之前測試的版本備受爭議, 我必須道個歉, 因為我在 while 循環(huán)實施 reset()功能的時候是在最開始而不是結束時非常感謝 Anthony Bush 這位老鐵發(fā)現(xiàn)了這個
修改下循環(huán)方式再來一波比較
如果我們改變讀取循環(huán)的測試, 改變?yōu)? 循環(huán)讀取數(shù)組結果后, 對每個元素進行簡單的重新賦值它會又怎樣一個結果表現(xiàn)呢?
還是給出一個含有 100 個元素的哈希數(shù)組, 每個鍵值對是由 24 字節(jié)的鍵名和 10k 的數(shù)據(jù)組成
結論:
foreach()依然吊打其他兩位循環(huán)選手
計數(shù)循環(huán)之間的 PK
for() VS. while()
循環(huán)時提前算好循環(huán)體的長度有沒有必要
比如: "for ($i=0; $i
結論:
* 結果讓人吃驚... 這在任何程序中都是很容易去實現(xiàn)的一件事情, 也是 PHP 社區(qū)普遍認可的基準, 結果表明他們都是為了自己說話
雙引號單引號的較量
double (") vs. single (')
PHP 中單引號和雙引號效率上是否有區(qū)別呢? 比如重復使用 10000 多次時
結論:
* 在當前的 PHP 版本中, 這個條件下兩邊表現(xiàn)都是不俗的讓大家在這一點上和諧相處!
變量檢測的較量
isSet() vs. empty() vs. is_array()
結論:
*isset()和 empty()差不多的, 因此使用變量之前, 盡量檢查一波例如: if (isSet($foo) AND is_array($foo))
條件控制結構的較量
switch/case/default vs. if/elseif/else
這兩種流程控制結構有啥區(qū)別呢?
結論:
*switch/case 和 if/elseif 棋逢敵手五五開, 需要注意的是 if/elseif 中用全等 (===) 比相等 (==) 要稍微快一些哦~
字符串輸出比較
echo vs. print
結論:
* 實際上, echo 和 print 函數(shù) / 結構服務很明確, 因此實現(xiàn)他們的代碼差不多值得一提的是: 在使用 echo 時, 用逗號分隔時, 會快一些
來源: https://www.cnblogs.com/guixiaoming/p/8534224.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結
以上是生活随笔為你收集整理的关于php的文章,一篇关于 PHP 性能的文章的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 看日本如何用IoT打造智能工厂
 - 下一篇: 实验报告3