gpt4 book ai didi

php - Doctrine 2.1 : memory usage increased after flush

转载 作者:行者123 更新时间:2023-12-04 15:56:45 24 4
gpt4 key购买 nike

我真的很不直观,为什么在 flush() 之后内存会增加而不是减少?我在文档中找不到任何有用的东西。我每 50 次循环迭代刷新一次,每次刷新后内存使用量增加 1MB。 100 次冲洗使用 100MB!我在这里错过了什么?我在 doctrine 的网站上看到了带有 clear() 的示例,但是如果我使用它,我会遇到一个异常,即我的一个对象没有级联持久集。任何人都可以向我解释在幕后做了什么以及我应该怎么做才能正确取消设置所有 Doctrine 的对象?

最佳答案

此外,请阅读此处:http://docs.doctrine-project.org/en/2.0.x/reference/batch-processing.html

它建议在每次批量操作后使用 $em->clear() 。 (这应该会产生与贝斯尼克建议的相同的效果)。

来自前面提到的链接:

Bulk inserts in Doctrine are best performed in batches, taking advantage of the transactional write-behind behavior of an EntityManager. The following code shows an example for inserting 10000 objects with a batch size of 20. You may need to experiment with the batch size to find the size that works best for you. Larger batch sizes mean more prepared statement reuse internally but also mean more work during flush.

关于php - Doctrine 2.1 : memory usage increased after flush,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9751515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com