<legend id='FDbwo'><style id='FDbwo'><dir id='FDbwo'><q id='FDbwo'></q></dir></style></legend>
    1. <tfoot id='FDbwo'></tfoot>
        <bdo id='FDbwo'></bdo><ul id='FDbwo'></ul>
      <i id='FDbwo'><tr id='FDbwo'><dt id='FDbwo'><q id='FDbwo'><span id='FDbwo'><b id='FDbwo'><form id='FDbwo'><ins id='FDbwo'></ins><ul id='FDbwo'></ul><sub id='FDbwo'></sub></form><legend id='FDbwo'></legend><bdo id='FDbwo'><pre id='FDbwo'><center id='FDbwo'></center></pre></bdo></b><th id='FDbwo'></th></span></q></dt></tr></i><div id='FDbwo'><tfoot id='FDbwo'></tfoot><dl id='FDbwo'><fieldset id='FDbwo'></fieldset></dl></div>

      <small id='FDbwo'></small><noframes id='FDbwo'>

      1. 在循环中执行 Doctrine 查询时的内存泄漏

        时间:2024-08-09
        <legend id='4ZSaY'><style id='4ZSaY'><dir id='4ZSaY'><q id='4ZSaY'></q></dir></style></legend>
        • <bdo id='4ZSaY'></bdo><ul id='4ZSaY'></ul>
          <i id='4ZSaY'><tr id='4ZSaY'><dt id='4ZSaY'><q id='4ZSaY'><span id='4ZSaY'><b id='4ZSaY'><form id='4ZSaY'><ins id='4ZSaY'></ins><ul id='4ZSaY'></ul><sub id='4ZSaY'></sub></form><legend id='4ZSaY'></legend><bdo id='4ZSaY'><pre id='4ZSaY'><center id='4ZSaY'></center></pre></bdo></b><th id='4ZSaY'></th></span></q></dt></tr></i><div id='4ZSaY'><tfoot id='4ZSaY'></tfoot><dl id='4ZSaY'><fieldset id='4ZSaY'></fieldset></dl></div>

          <small id='4ZSaY'></small><noframes id='4ZSaY'>

            <tbody id='4ZSaY'></tbody>
            <tfoot id='4ZSaY'></tfoot>

                1. 本文介绍了在循环中执行 Doctrine 查询时的内存泄漏的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我无法在脚本中找到内存泄漏的原因.我有一个简单的存储库方法,它将我的实体中的计数"列增加 X 数量:

                  I'm having trouble in locating the cause for a memory leak in my script. I have a simple repository method which increments a 'count' column in my entity by X amount:

                  public function incrementCount($id, $amount)
                  {
                      $query = $this
                          ->createQueryBuilder('e')
                          ->update('MyEntity', 'e')
                          ->set('e.count', 'e.count + :amount')
                          ->where('e.id = :id')
                          ->setParameter('id', $id)
                          ->setParameter('amount', $amount)
                          ->getQuery();
                  
                      $query->execute();
                  }
                  

                  问题是,如果我在循环中调用它,每次迭代时内存使用量都会激增:

                  Problem is, if I call this in a loop the memory usage balloons on every iteration:

                  $entityManager = $this->getContainer()->get('doctrine')->getManager();
                  $myRepository = $entityManager->getRepository(MyEntity::class);
                  while (true) {
                      $myRepository->incrementCount("123", 5);
                      $doctrineManager->clear();
                      gc_collect_cycles();
                  }
                  

                  我在这里缺少什么?我试过 ->clear(),按照 Doctrine 的 关于批处理的建议.我什至尝试了 gc_collect_cycles(),但问题仍然存在.

                  What am I missing here? I've tried ->clear(), as per Doctrine's advice on batch processing. I even tried gc_collect_cycles(), but still the issue remains.

                  我在 PHP 5.5 上运行 Doctrine 2.4.6.

                  I'm running Doctrine 2.4.6 on PHP 5.5.

                  推荐答案

                  我通过在命令中添加 --no-debug 解决了这个问题.事实证明,在调试模式下,分析器将有关每个查询的信息存储在内存中.

                  I resolved this by adding --no-debug to my command. It turns out that in debug mode, the profiler was storing information about every single query in memory.

                  这篇关于在循环中执行 Doctrine 查询时的内存泄漏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:如何使用 SimpleXML 解析包含自定义命名空间的 XML? 下一篇:Doctrine2 ORM 选择更新

                  相关文章

                    <bdo id='6hvkJ'></bdo><ul id='6hvkJ'></ul>

                    1. <small id='6hvkJ'></small><noframes id='6hvkJ'>

                    2. <tfoot id='6hvkJ'></tfoot>
                      <i id='6hvkJ'><tr id='6hvkJ'><dt id='6hvkJ'><q id='6hvkJ'><span id='6hvkJ'><b id='6hvkJ'><form id='6hvkJ'><ins id='6hvkJ'></ins><ul id='6hvkJ'></ul><sub id='6hvkJ'></sub></form><legend id='6hvkJ'></legend><bdo id='6hvkJ'><pre id='6hvkJ'><center id='6hvkJ'></center></pre></bdo></b><th id='6hvkJ'></th></span></q></dt></tr></i><div id='6hvkJ'><tfoot id='6hvkJ'></tfoot><dl id='6hvkJ'><fieldset id='6hvkJ'></fieldset></dl></div>

                      <legend id='6hvkJ'><style id='6hvkJ'><dir id='6hvkJ'><q id='6hvkJ'></q></dir></style></legend>