私はphp 5.2.5を使用しており、コマンドラインからスクリプトを実行しています。このスクリプトでは、db から取得したデータを操作しています。データベースからデータを取得するには、Zend Adapter を使用しています。「fetchAll($sql,$data,Zend_Db::FETCH_ASSOC)」を呼び出した後 、メモリ (262144 バイト) が増加していることに気付きました
したがって、最終的にメモリ不足につながります。テストするために、返されたデータを変数に保存することなく、「fetchAll」を実行しました。それでも、再利用されていないメモリの増加が見られます。
- Zend FetchAll メソッドにメモリ リークの問題はありますか?
- メモリが 262144 または 262144 の倍数増加するのはなぜですか?
- メモリの増加はランダムに発生し、すべての fetchAll 呼び出しで発生するわけではありません。なぜですか?
メモリ リークの原因を特定するために memory_get_usage() を使用しようとしましたが、コードが大きいため時間がかかります。メモリ内のすべてのオブジェクトの詳細を取得してデバッグできる方法はありますか?問題はより良いですか?
SQL は次のとおりです。
select b.Id as Id,b.Lang
from groups g
left join table1 b on b.Group_Id = g.Id
left join table2 bs on bs.Id = b.Id
where g.Id = ? and b.Lang = ?