PHP
ベンチマーク
小ネタ
速度改善
俺のメモ

PHPで少しでも速いコードを書きたい時のためのメモ

ライブラリ作者にとっては同じ書くなら遅いコードより早いコードを書くことを心掛けたいもの。この記事では忘れがちな速いコードの書き方について外部サイトの記事をまとめたいと思います。
(環境によって違うよなどご意見あればコメントお願いします)

※2018/2/3 追記
この記事は「アプリケーションレベルの実行速度の最適化」を語るものでも、保守性・安全性・拡張性等のパフォーマンスに関する特性以外のコード改善策についてまとめたものではありません。

elseif vs else if

ページ 結論
php elseif と else if の違い elseifが速い

※2018/2/3 追記
else ifとelseは最新のオプティマイザであれば理論上実行時間に差はない。

echo VS print

ページ 結論
PHP速度対決!差が出る5パターン echoが速い

※2018/2/3 追記
echoとprintの理論上の実行時間は同じとなる。

===演算子 VS ==演算子

ページ 結論
PHP速度対決!差が出る5パターン ===が速い

for VS foreach

ページ 結論
PHP速度対決!差が出る5パターン foreachが速い

for VS foreach(イテレータ) VS ジェネレータ

ページ 結論
PHPのジェネレータはイテレータより速い for>>ジェネレータ>イテレータ

if VS switch

ページ 結論
PHP速度対決!差が出る5パターン switchの方が少し速いがほぼ同じ
stackoverflow 場合による

こちらのページではPHP7.2からswitchのoptimiserが実装され、固定値のラベルに限りジャンプテーブルに変換されるようなので、固定値でたくさんのラベルを書く場合はswitchが有利になるケースもあるかも。

そもそも「switch文を使ってはいけない」という話もありますが...

(以下、随時追加予定)