为什么php脚本会变慢?

时间:2014-03-19 09:40:02

标签: php performance shell slowdown

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

前100篇文章需要大约5秒才能导入,接下来的100篇文章需要7秒,接下来的10秒等等。这真是个大问题,因为我需要导入约1.5万篇文章。

1 个答案:

答案 0 :(得分:5)

我发现php> = 5.3有垃圾收集器更清洁。因此,当我导入大量文章时,我调用gc_collect_cycles();来清除所有不再需要脚本的实体。脚本不再慢下来了!

如果您使用的是框架,请检查它是否有自己的缓存系统。 如果您使用的是doctrine,请关闭SQL logger

/** @var $em EntityManager */
$em = $this->getContainer()->get('doctrine')->getEntityManager();
$em->getConnection()->getConfiguration()->setSQLLogger(null);

然后在导入每个块后清除doctrine缓存

$em->clear();