Symfony 2原则的内存用法

问题描述 投票:3回答:1

我正在使用实体存储库创建查询,它似乎存在内存泄漏。

在我的实体存储库类中:

echo 'mem 1 : ' . (memory_get_usage()/1024/1024) . "<br />\n";
$query = $this->createQueryBuilder('a')->select('a','b','c','...');
echo 'mem 2 : ' . (memory_get_usage()/1024/1024) . "<br />\n";
$r = $query->getQuery()->getResult();
echo 'mem 3 : ' . (memory_get_usage()/1024/1024) . "<br />\n";
$this->clear(true);
$query->getQuery()->free(true);
unset($r);
echo 'mem 4 : ' . (memory_get_usage()/1024/1024) . "<br />\n";

输出:

备忘录1:5.0805282592773内存2:5.0998611450195内存3:91.49528503418mem 4:77.939567565918

为什么释放内存后内存不回到初始大小(5 MB)?

并且仅从91到77。

php memory symfony doctrine
1个回答
3
投票

Doctrine缓存已加载的实体的某些方面。使用

$em->clear(); 

从当前实体管理器分离所有对象。

© www.soinside.com 2019 - 2024. All rights reserved.