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さんです。
よろしくお願いします!