内存调试symfony2

内存调试symfony2,symfony,orm,doctrine,Symfony,Orm,Doctrine,我正在使用条令在sql中插入大量数据。但在插入600到700条记录后,它会给出一个错误 致命错误:允许的内存大小33554432字节已用尽(尝试分配24字节) 我尝试增加php内存限制,但没有成功 这是我的密码: 函数DB_InsertPostTag($postID、$listSize、$tagList、$tagTypeID、$categoryid) { $returnVal=0; $insertList=数组(1=>“”); $insertCount=0; 排序($tagList); $tag

我正在使用条令在sql中插入大量数据。但在插入600到700条记录后,它会给出一个错误 致命错误:允许的内存大小33554432字节已用尽(尝试分配24字节)

我尝试增加php内存限制,但没有成功

这是我的密码:

函数DB_InsertPostTag($postID、$listSize、$tagList、$tagTypeID、$categoryid) {

$returnVal=0;
$insertList=数组(1=>“”);
$insertCount=0;
排序($tagList);
$tagCount=0;
对于($i=0;$i setPostId($postID);
$post_tag->setCategoryId($categoryid);
$post_tag->setTagId($tagList[$i]);
$post_tag->setTagTypeId($tagTypeID);
$post_tag->setTagCount($tagCount);
$em1=$this->em;
$em1->persist($post_标记);
$id=$post_标记->getId();
如果($i%$batchSize)==0){
$em1->flush();
$em1->clear();//从条令中分离所有对象!
}
}
$em1->flush();
$em1->clear();
$returnVal=$id;
return$returnVal;

}

如果使用DQL,请尝试在一定数量的行之后进行刷新,以便php可以从内存中清除这些对象。

我在每次插入后都使用刷新,但不工作如果($I=1;$I<$insertCount;$I++)的
前面的代码没有生成无限循环(我无法测试它),则查询生成似乎很好,然后尝试在没有对象的情况下手动编写Insert语句。当我需要测试一个有数百万用户的网站时,我不得不这样做,而且用对象生成这些条目数据花费了太多时间。
 $returnVal = 0;

 $insertList = array(1=>'');

 $insertCount = 0;
         sort($tagList);
         $tagCount = 0;
      for ($i = 0; $i <$listSize; $i++)
      {
           $tagCount++;
           if(isset($tagList[$i+1]))
      {

        if ($tagList[$i] != $tagList[$i+1])
           {
                $insertCount++;
                $tagList[$i];
                $tagCount = 0; //reset the counter

           }

       }
           //else we just ramp the counter
      }
      $batchSize = 1;
     for ($i = 1; $i < $insertCount; $i++)
      {

           $post_tag = new PostTag();
           $post_tag->setPostId($postID);
           $post_tag->setCategoryId($categoryid);
           $post_tag->setTagId($tagList[$i]);
           $post_tag->setTagTypeId($tagTypeID);
           $post_tag->setTagCount($tagCount);
           $em1 = $this->em;
           $em1->persist($post_tag);
            $id = $post_tag->getId();
           if (($i % $batchSize) == 0) {
            $em1->flush();
            $em1->clear(); // Detaches all objects from Doctrine!
        }
        }
        $em1->flush();
        $em1->clear();
      $returnVal = $id;

 return $returnVal;