Home > PHP > PHPコード最適化12のコツ


  • Posted by: zaru
  • 2006年11月21日 12:31
  • PHP


  1. If a method can be static, declare it static. Speed improvement is by a factor of 4.
  2. Avoid magic like __get, __set, __autoload
  3. require_once() is expensive
  4. Use full paths in includes and requires, less time spent on resolving the OS paths.
  5. If you need to find out the time when the script started executing, $_SERVER[’REQUEST_TIME’] is preferred to time()
  6. See if you can use strncasecmp, strpbrk and stripos instead of regex
  7. preg_replace is faster than str_replace, but strtr is faster than preg_replace by a factor of 4
  8. If the function, such as string replacement function, accepts both arrays and single characters as arguments, and if your argument list is not too long, consider writing a few redundant replacement statements, passing one character at a time, instead of one line of code that accepts arrays as search and replace arguments.
  9. Error suppression with @ is very slow.
  10. $row['id'] is 7 times faster than $row[id]
  11. Error messages are expensive
  12. Do not use functions inside of for loop, such as for ($x=0; $x < count($array); $x) The count() function gets called each time.

12 PHP optimization tips:Alex Moskalyuk Blog


(3)の require_once()が遅い(というかメモリを消費するという意味かな)というのは気になる。include_once()のが良いってことなのかな。


普通はインクルードするディレクトリを define() で定義して、include_once(INCLUDE_DIR . "xxx.php"); とかってやるのが良い感じ。


(6)の正規表現よりも strncasecmp() / strpbrk() / stripos() を使えっていうのは、理解できるんだけど、正規表現が楽すぎて、ついつい早さよりも優先してしまうなぁ。

(7)は strtr() >> preg_replace() > str_replace()。str_replace() よりも preg_replace() の方が早いっていうのは意外。単純な置換の時は strtr() を使えってことか。



(10)は有名な話。配列のキーを、シングルクオートで囲む・ダブルクオートで囲む・なにも囲まないでは、処理スピードが違う。シングル > ダブル > 囲まない の順番。ただ、実験してみると大きいスクリプトでない限り差は顕著に見られない。けど、可読性とバグ・エラー潰しのために囲っておくが吉。


(12)は、PHPに限らず色々な言語に共通する。for() で毎回計算しなくてはならない場所に、さらに関数を入れて計算させると遅くなるよ、と。for() で回す前に、あらかじめ計算して数値を出してから。



Comment Form


TrackBack URL for this entry
Listed below are links to weblogs that reference
PHPコード最適化12のコツ from Webプログラマー+WebデザイナーなZARU日記

Home > PHP > PHPコード最適化12のコツ



Name : zaru

Webプログラマ+Webデザイナで、Webディレクタやってます。Twitterやっているので、ぜひフォローしてやってくださいませ。Twitter - zaru。また、そのほかのプロフィールについては、iddy - zaruを見てください。


Return to page top