首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >学说-在奏鸣曲管理中记忆耗尽?

学说-在奏鸣曲管理中记忆耗尽?
EN

Stack Overflow用户
提问于 2016-02-22 10:26:08
回答 2查看 1.4K关注 0票数 1

我有Movie实体,它与ActorDirectorProducer,公司等实体有ManyToMany连接。

在剪辑电影时,有很多实体(演员: 90k,导演: 40k,制片人: 20k,公司: 40k)可供选择。

当我试图在Sonata中为我的实体加载“编辑”页面时,我会得到错误500,而php日志(比如Allowed memory size of 134217728 bytes exhausted )位于以下文件之一:

代码语言:javascript
复制
\vendor\doctrine\orm\lib\Doctrine\ORM\UnitOfWork.php on line 2577
\vendor\doctrine\orm\lib\Doctrine\ORM\Internal\Hydration\AbstractHydrator.php on line 296
\vendor\doctrine\orm\lib\Doctrine\ORM\Internal\Hydration\ObjectHydrator.php on line 529

它在固定装置上工作,当每个实体在DB中有10个对象时。

我目前正在测试迁移,我假设编辑页面上会有大量的数据,而且页面本身的工作速度可能很慢(将有四个select2字段,每个多个选项,每个实体将有数千个实体连接到编辑的实体),但我感到惊讶的是,这种情况发生在Doctrine级别。我希望Sonata能够处理它,因为它在列出大量的Actor对象、分页等方面没有问题。

我应该如何安排与Movie实体的工作?你能给我点建议吗?我正在考虑changing that CRUD page,这样Select2就可以使用Ajax获取数据,但我仍然不确定这是一个最好的主意。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-22 11:40:06

您需要考虑如何使用应用程序。在您的编辑面板中,您认为是否列出了所有可能的关系(演员、导演…)你的实体会是最好的UX,我不这么认为。

您的实体将获取所有依赖项并在对象中补充它们。您可以看到,即使将内存限制设置为1,内存也是一个问题。

我建议的是使用自动完成。这样,您将不会加载数千个无用的数据,应用程序将更快,用户将能够搜索他正在寻找的东西,而不是在一个无休止的选择框中搜索。

希望能帮上忙。

票数 0
EN

Stack Overflow用户

发布于 2016-02-22 10:49:22

可以通过向memory_limit添加更多内容来增加php.ini

若要在phpInfo();上找到正确的AppKernel.php位置,并在输出中搜索"php.ini“,请编辑ini文件并将行´memory_limit更改为2G

此外,如果可能的话,您应该避免对象化(将结果行水化为实体),这会导致内存大小耗尽,下面是一些信息

http://labs.octivi.com/mastering-symfony2-performance-doctrine/

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35551204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档