PHPコーディングに関する最適化TIPS 2009
2009年03月13日-
PHP micro-optimization tips | Alex @ Net
PHPコーディングに関する最適化TIPS というのがまとまっていましたのでご紹介。
元記事では、micro-optimization ということで、これらを直すのももちろんだけど、ロジックを直す方がパフォーマンスは改善されるということを言ってるようです。
個人的な勉強がてら、メモとして残します。
・__call のマジックメソッドを使うと遅い
・staticなメソッドはインスタンス化したオブジェクトのメソッドより速い
・関数呼び出しは、staticなメソッド呼び出しより高速
・ローカル変数へのアクセスはグローバル変数へのアクセスより速い
・グローバル変数へのアクセスは、オブジェクトのプロパティより速い
・オブジェクトプロパティへのアクセスは、__get, __set を使うと遅い
・初期化された変数はそうでない場合より速いので初期化しよう
・include, require する場合は絶対パスが、相対パスより速い
・ファイルの読み込みは複数より1回にしたほうがいいので、まとめられる物はまとめる
・switch は if , else if より速い(場合がある)
・簡単な文字列比較に正規表現は使わない
・@でエラーを抑制しない
・noticeやwarningを発生させると遅くなるので避ける
・使わない変数や、使わない関数パラメータを可能なかぎり使わない
・メソッドの引数を増やすと実行が遅くなる
・パラメータのtypeヒントをつけると実行が遅くなる
・大きなデータの変数はunsetする
・$_SERVER['REQUEST_TIME'] にはスクリプトの実行時間が保存されている
・固定データはキャッシュしよう
・echo は print より速い
・echo は複数引数を受け付けるので、. による文字列結合のコストは省ける
・ob_start, ob_end_cleanによるバッファリング出力を使って文字列結合する方がよいかも
・文字列は、" より ' で囲うほうが速い
・++$i は $i++ より速い
・isset は array_key_exists より速い
・array は object より速いので、リストにはarrayを使ったほうがよい
・foreach は for より速度など色々な面でよい
・file, db などのリソースは使った後、即開放するほうがよい
・データベースのfetchの際には必要なフィールドだけ取る
select * from table でなく、select id, name from table みたいな感じ
・データベースのfetch にはprepareメソッドを使う
・DBがサポートするならば、複数クエリを1クエリにまとめる
ツッコミなど歓迎しておりますのでメール頂ければ幸いです。
最新のブログ記事(新着順)
- CSSで太陽が差し込むようなアニメーション実装
- 可愛くアニメーションする「beautifully crafted animated icons」
- アイソメトリックなアイコンがアイコンがPNG,SVGでゲットできる「Isoicons」
- ユニークなカタカナフォントtorisippo
- 美しいメッシュグラデーションをCSSで簡単に取得できる「MSHR」
- TailwindCSSなサイトで使える100以上のアニメーションエフェクト「animata」
- SVG形式のテック系企業のロゴを簡単にゲットできる「Svgl」
- 統一感のある色味を一括生成できるツール「The good colors」
- くちばしフォント【商用可】
- 小説表紙などに使えそうな商用可なフォント「になロマン」
- 過去のエントリ