我注意到update_post_meta 导致我的内存使用量略有增加。
通常情况下,增长幅度小到无关紧要。但我正在编写一个CSV导入函数,调用它10000多次,最终导致内存不足错误。
下面是一个简单的代码示例:
function update_business($myData)
{
error_log("Used memory 1: " . memory_get_usage(false));
error_log("Allocated memory 1: " . memory_get_usage(true));
update_post_meta(\'13663\', \'business_id\', $myData);
error_log("Used memory 2: " . memory_get_usage(false));
error_log("Allocated memory 2: " . memory_get_usage(true));
}
这将导致:...
Used memory 1: 17995848
Used memory 2: 17996992
Used memory 1: 17996992
Used memory 2: 18027720
Used memory 1: 18027720
Used memory 2: 18058448
Used memory 1: 18058448
Used memory 2: 18089176
Used memory 1: 18089176
Used memory 2: 18119904
...
没有update_post_meta
语句,则整个循环中的内存使用量保持不变(如预期的那样)。但在update_post_meta
语句中,内存使用量越来越大,永远不会释放。
我尝试了一系列不同的清除内存的技术,包括:
wpdb::flush
- 但似乎什么都不起作用。
我查看了大量的搜索结果,虽然有不少人遇到过这个问题,但除了“提高你的记忆限制”或“以不同的方式进行”之外,没有多少答案,这两种方法似乎都不是最好的解决方案。
肯定有办法释放记忆?我假设WordPress、PHP、MySQL或其他东西正在缓存我不想缓存的东西,或者某个地方出现了内存泄漏,但我无法找到答案。