我在 php 5.2.5 上并从命令行执行脚本。在这个脚本中,我正在处理从 db 获取的数据。要从 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 = ?