前の記事 ≪:2009年3月12日 管理人のブックマーク
次の記事 ≫:凄くクオリティの高いプロレベルのIllustratorの3Dチュートリアル集40

PHPコーディングに関する最適化TIPS 2009

2009年03月13日-はてなブックマーク

スポンサード リンク
[PR] 英単語を忘却曲線アプリを使って超効率よく記憶する方法

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クエリにまとめる

ツッコミなど歓迎しておりますのでメール頂ければ幸いです。

関連の記事検索:PHP, チュートリアル, まとめ
スポンサード リンク

By.KJ : 2009年03月13日 07:06 livedoor Readerで購読 Twitterに投稿

間違いの指摘をしていただける方はメール、あるいはTwitter/FBでお願いします(クリック)