我在Doctrine2脚本中遇到了内存泄漏问题,这个问题通常是由一段代码消除内存问题造成的.

在我知道你可以(并且应该)清除实体管理器之前,每20次迭代我做了以下事情:

if ($this->usersCalculated % 20 == 0) {

$this->em->close();

$this->em = \Bootstrap::createEm();

$this->loadRepositories();

}

而Bootstrap :: createEm看起来像这样:

public static function createEm() {

$em = EntityManager::create(Bootstrap::$connectionOptions, Bootstrap::$config);

$em->getConnection()->setCharset('utf8');

return $em;

}

我首先重新创建实体管理器的原因是因为我的UnitOfWork越来越疯狂,我不知道$em-> clear()方法.

因此,即使我当前的内存泄漏现在似乎已解决(或至少减少),我仍然需要创建一个新的实体管理器,每当我需要执行单独的插入/更新查询而不依赖其他人执行刷新.例如,每当我发送电子邮件时,我都会在数据库中插入一行来表明这一点,代码如下所示:

$emailSent = new \model\EmailSent();

$emailSent->setStuff();

// I do it in a new em to not affect whatever currentunit was doing.

$newEm = \Bootstrap::createEm();

$newEm->persist($emailSent);

$newEm->flush();

$newEm->close();

从我以前学到的东西中,留下了一些记忆.

所以我的问题是,我在这里做错了什么?为什么这个泄漏的内存以及我应该如何关闭/重新创建实体管理器?

php 去除实体,php – 如何在学说中正确关闭实体管理器相关推荐

  1. java怎么设置卡片布局_在Java中使用卡片布局管理器的方法

    在Java中使用卡片布局管理器的方法 发布时间:2020-12-03 16:05:18 来源:亿速云 阅读:85 作者:Leah 在Java中使用卡片布局管理器的方法?针对这个问题,这篇文章详细介绍了 ...

  2. java中什么是布局管理器_Java中布局管理器

    布局管理器种类 FlowLayout: 组件在一行中从左至右水平排列,排满后折行,它是Panel.Applet的默认布局管理器. BorderLayout:北.南.东.西.中,它是Window.Fra ...

  3. java 实体属性个数_?Java中比较实用实体转换工具介绍

    ​Java中比较实用实体转换工具介绍 文中源码地址 大家一般编码过程中,经常会遇到DO对象转化为DTO对象,对象和对象之间转换一般需要用到转换工具,毕竟使用getter/setter太过麻烦 DO:D ...

  4. Django框架(16.Django中的模型类管理器以及自定义管理器)

    模型类.objects.all()->objects是一个什么东西呢? 答:objects是Django帮我自动生成的管理器对象,通过这个管理器可以实现对数据的查询. objects是model ...

  5. python中的with上下文管理器

    with 语句 with 语句是 Pyhton 提供的一种简化语法,确保不管使用过程中是否发生异常都会执行必要的"清理"操作,释放资源. 在没有学习with的句法之前,通常我们都是 ...

  6. django ORM中的RelatedManager(关联管理器)

    关联管理器应用在 一对多的表 或者 多对多的表 多对多表中的用法: 在多对多的表中 正向查询 #基于对象的查询 #正查 # author_obj = Author.objects.get(id=1) ...

  7. java 布局管理器_有时在Java中,一个布局管理器是不够的

    java 布局管理器 在开发Java Swing应用程序时,最经常的是,我们需要在多个嵌套面板中使用多个布局管理器. 这通常不是问题,被认为是几乎所有人类已知语言的所有UI开发的常规做法. 但是,大多 ...

  8. 有时在Java中,一个布局管理器是不够的

    在开发Java Swing应用程序时,最经常的是,我们需要在多个嵌套面板中使用多个布局管理器. 通常这不是问题,并且被认为是几乎所有人类已知语言的所有UI开发的常规做法. 但是,大多数情况下,对于UI ...

  9. 【Java】Java中GUI之布局管理器

    [概念] 布局管理器:是对容器中的元素进行布局管理,按照一定的规则将容器里面的元素或组件进行排放. [分类] 1.FlowLayout:流式布局管理器 2.BorderLayout:边框布局管理器 3 ...

最新文章

  1. java 二分搜索获得大于目标数的第一位_程序员常用查找算法(顺序、二分、插值、分块、斐波那契)...
  2. 第5关:32位快速加法器设计
  3. 给用过SAP CRM中间件的老哥老姐们讲讲SAP CPI
  4. 雷军 1994 年写的代码,经典老古董。
  5. [python opencv 计算机视觉零基础到实战] 十二 直方图
  6. oracle数据库重建em,oracle 11g em重建报唯一约束错误解决方法
  7. 常见排序算法之归并排序
  8. [C#]六十甲子纳音WM版 v2.1 By:LESLIE
  9. Filter -- 过滤敏感词汇
  10. 基础架构即服务(iaas)_基础架构即服务
  11. 华为计算机视觉博士,华为视觉计划发布,要做“智能世界的眼睛”
  12. Java对List集合中的对象的某个中文字段按照拼音首字母进行排序
  13. circos配置文件解析
  14. 通过浏览器无法访问Hadoop管理页面
  15. Reboot Restore Rx Pro v12.0 Build 2707937851 系统重启还原工具
  16. DCDC--开关频率的选择
  17. IC学习笔记——DRV8804
  18. Freedom and discipline
  19. 访问修饰符有哪些?及作用范围
  20. uniapp 页面滚动获取元素高度

热门文章

  1. 2019腾讯广告算法大赛-冠军之路
  2. 【numpy学习笔记】数组的切片,索引,迭代
  3. 全球首个「活体机器人」生娃!100%青蛙基因,杀不死,可繁衍4世
  4. 啥?Transformers又来刷CV的榜了?
  5. 推荐一位二本毕业1年,上海买房的大佬,牛逼!
  6. 可高效训练超大规模图模型,PyTorch BigGraph是如何做到的?
  7. YOLOv5是真的吗?并不比YOLOv4强,不配这个名字
  8. 如何用Python玩转比特币?(附源码)
  9. 100年前的北京Vlog火了!大神利用AI修复古董纪录片,还原1920年的京城生活
  10. Linux用户必须知道的常用终端快捷键