PHPの速度比較について
Aizu Advent Calendar : ATNDより12/15日を担当しますabout_hiroppyです。
今回はPHPでの速度比較をしてみたいと思います。
言語の速度について
PHPだとC++の約130倍遅いです(´・ω・`)
実験開始!
まずは表の見方の説明
marker: まーかー
time index: そのまーかーが到達する経過時間
ex time: 前から次へのまーかーに要する時間
prect: 総合の時間に対する割合(ex time)
詳細(pear):http://pear.php.net/package/Benchmark/
そのいち
== と === の違い
== は型の相互変換を行い比較する(基本文字列がある場合、文字列が数値変換され数値として比較されます)
=== は型の相互変換を行いません
1 0.0015790462493896 same 2 0.00069904327392578 ---------------------------------------------------- marker time index ex time perct ---------------------------------------------------- Start 1355065666.79814700 - 0.00% ---------------------------------------------------- first 1355065666.79815300 0.000006 0.26% ---------------------------------------------------- second 1355065666.79976200 0.001609 69.20% ---------------------------------------------------- Stop 1355065666.80047200 0.000710 30.54% ---------------------------------------------------- total - 0.002325 100.00% ----------------------------------------------------
=== の方が == よりも2.5倍ぐらい速いです。
1 0.0074639320373535 2 0.0024480819702148 ---------------------------------------------------- marker time index ex time perct ---------------------------------------------------- Start 1355066593.45915000 - 0.00% ---------------------------------------------------- first 1355066593.45915700 0.000007 0.07% ---------------------------------------------------- second 1355066593.46665400 0.007497 75.18% ---------------------------------------------------- Stop 1355066593.46912200 0.002468 24.75% ---------------------------------------------------- total - 0.009972 100.00% ----------------------------------------------------
3倍ぐらいの速さでピリオドのみの連結の方が速いです。
そのさん
変数展開
文字列内での変数展開の速度を測ります。
""と{}で展開させた時です。
1 0.0017168521881104 2 0.0018150806427002 ---------------------------------------------------- marker time index ex time perct ---------------------------------------------------- Start 1355067378.18303100 - 0.00% ---------------------------------------------------- first 1355067378.18303700 0.000006 0.17% ---------------------------------------------------- second 1355067378.18478200 0.001745 48.69% ---------------------------------------------------- Stop 1355067378.18661500 0.001833 51.14% ---------------------------------------------------- total - 0.003584 100.00% ----------------------------------------------------
{}で展開させた方が少し遅いです。
まとめ
大規模開発になると速度を気にする必要があるのでこういうのを知識の片隅に置いとくといいと思います!
そしてみなさん、PHPやりましょう!!
前々から比較をしたくてこのような機会にできてよかったです!
つぎはShunsuke Ishikuroさんです。
よろしくお願いします!