by shigemk2

当面は技術的なことしか書かない

メモリの使用量の最適化

プログラミングPHP P342より。

スクリプトの実行時のメモリ使用量を軽減させるには、以下のようなテクニックがある。

  • 数値が使用できる場面では、可能な限り文字列ではなく数値を利用する
for($i="0"; $i < "10"; $i++) // 悪い例
for($i=0; $i < 10; $i++) // 良い例
  • 大きな文字列を扱う場合は、使い終えたらその変数に空文字列を代入する。これによりそれまで使用していたメモリが解放されて再利用できるようになる
  • 外部のファイルは、必要なときだけ読み込むようにする。includeやrequireではなく、include_onceやrequire_onceを利用するようにする
  • MySQLで巨大な結果セットを扱う場合は、MySQL固有の拡張モジュールを直接使用するようにする。mysql_unbuffered_query()関数を使用すると、結果セット全体を一度にメモリで読み込むのではなく、必要な部分を少しずつ読み込んでいくようになる。
  • MySQLやその他のデータベースの結果セットは、不要になったらすぐに解放する。結果セットをいつまでもメモリに保持していても何のメリットもない

プログラミングPHP 第2版

プログラミングPHP 第2版