是否有可能在findAll()
方法期间释放CakePHP使用的整个内存?
我尝试在单个部分中分离我的数据库中的巨大选择但我无法找到一种方法来删除每个部分之后的内存(通过memory_get_usage
)。
我尝试在每次选择后取消设置TableModel
,clearCache
,cacheMethods = false
和public $cacheQueries = false
都无法减少CakePHP在mysql上选择的内存使用量 - 数据库。
我使用CakePHP 2.4。*
我从3792752字节的内存使用量开始。通过选择大约90k的数据行,最终得到249679096字节。
请帮帮我!我只是努力解决内存泄漏的问题。 但我没有找到任何有用的东西。
答案 0 :(得分:1)
正在使用的内存量更多地指向代码中的某些错误。 确保将调试转为2或3并检查代码是否有错误。尝试在PhPMyAdmin中运行sql查询,它可能会告诉你搜索数据库的方式有问题。
答案 1 :(得分:1)
@ user2140111当前版本是2.3.5时,你如何使用Cake 2.4。*?你使用的是一些不稳定的分支还是什么?
尝试直接在数据库上使用SQL EXPLAIN
运行查询,以查看其中发生的情况。还可以使用SQL limit
将部分“拆分”,然后检查内存使用情况。
238 MB是一个很大的内存,但我怀疑它只是来自数据库选择 - 这是如此特权,你不存储任何blob。你在存储blob吗?
你的记忆中可能会有很多未使用的变量。