Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么php脚本速度变慢了?_Php_Performance_Shell_Slowdown - Fatal编程技术网

为什么php脚本速度变慢了?

为什么php脚本速度变慢了?,php,performance,shell,slowdown,Php,Performance,Shell,Slowdown,我正在编写迁移脚本,该脚本从一个MySQL数据库中选择数据,并通过doctrine导入另一个MySQL数据库。问题是,在创建了每一个实体块之后,我的脚本都会变慢 导入前100篇文章大约需要5秒,导入后100篇文章需要7秒,导入后10秒,依此类推。这真是个大问题,因为我需要导入大约150万篇文章。我发现php>=5.3有垃圾收集器清理器。所以,当我导入文章块时,我调用它来清除脚本不再需要的所有实体中的内存。脚本不再慢下来了 如果您使用的是框架,请检查它是否有自己的缓存系统。 如果您使用的是条令,请

我正在编写迁移脚本,该脚本从一个MySQL数据库中选择数据,并通过doctrine导入另一个MySQL数据库。问题是,在创建了每一个实体块之后,我的脚本都会变慢


导入前100篇文章大约需要5秒,导入后100篇文章需要7秒,导入后10秒,依此类推。这真是个大问题,因为我需要导入大约150万篇文章。

我发现php>=5.3有垃圾收集器清理器。所以,当我导入文章块时,我调用它来清除脚本不再需要的所有实体中的内存。脚本不再慢下来了

如果您使用的是框架,请检查它是否有自己的缓存系统。 如果您使用的是条令,请关闭SQL记录器

/** @var $em EntityManager */
$em = $this->getContainer()->get('doctrine')->getEntityManager();
$em->getConnection()->getConfiguration()->setSQLLogger(null);
然后在导入每个块后清除缓存

$em->clear();

我打电话给clear有问题,因为这是一个例外。。。我使用$em->persist($e),$em->flush($e)和$em->clear($e)连续调用来对其进行排序。是的,这就是我所说的“导入每个块后”,您也可以使用$em->detach($e);冲水后