[PHP-users 29317] クラスメソッドからの戻りが遅い

Ryuichi g-stuff @ bk.iij4u.or.jp
2006年 5月 31日 (水) 10:15:31 JST


はじめまして。
まえのといいます。

クラスメソッドをコールし、そのメソッド内でPostgreSQLから
データを取得して、インスタンス変数に値を設定し、
Returnするだけの処理なのですが、
クラスメソッドから呼び出し元に返ってくるのに、現在20秒もかかってしまい、
お手上げ状態です。

環境は、
PHP
 4.3.10
PostgreSQL
 PostgreSQL 7.4.7 on i686-pc-linux-gnu, compiled by GCC 2.95.3
Apache
 1.3.33
です。

メソッド内でクエリを2回投げてるのですが、
(1)一度目のクエリで取得した値を配列(連想配列)である、インスタンス変数に設定してます。
   この時データ件数は1万件程、php.iniのmemory_limitは256MB取ってます。
(2)二度目のクエリでは、200件程のデータを取得して、配列に設定しています。

行っている処理をこれだけなのですが、20秒もかかってしまってます。

<調べた事>
・(1)の直後にreturnするようにしたのですが、結果は変わりませんでした。
・return時に、一度目のクエリ結果を保持しているインスタンス変数をunsetしたのですが、
  結果は変わりませんでした。
・(1)の後に、一度目のクエリ結果を保持しているインスタンス変数をunsetしたのですが、
  結果は変わりませんでした。
・(1)の直度に、一度目のクエリ結果を保持しているインスタンス変数をunsetしreturn
  するようにしたら、すぐに呼び出し元に返ってくるようになりました。

上記の結果から判断すると、PHPのメモリ管理のバグ
なのかなと思ってしまうのですが、対応方法はあるのでしょうか?

-- 
Ryuichi<ryuone @ gmail.com>


PHP-users メーリングリストの案内