2

我们目前在使用 Symfony 1.x 的单元测试时遇到内存泄漏问题,数量相当多的测试消耗 512MB 内存。

目前我们已经尝试过:

  • 使用 phpunit 插件
  • 使用石灰
  • 将测试限制为几个 sfPropelData 负载 + 重复几次功能测试
  • 切换到 PHP 5.3.3 来处理循环引用
  • 检查内存使用情况 xdebug 没有提供太多洞察力

很快我们将尝试:

  • 只有功能测试
  • 替换 sfPropelData 代替加载普通 SQL 文件
  • 只有没有任何 ORM 调用的功能测试
  • 瓦尔格林?

我在想也许 symfony 中的静态变量没有被清理或者 PDO 层本身正在泄漏内存。当然,最后一个选项是想办法在自己的进程中运行一套测试。

我们正在通过可能存在的领域取得进展,我不希望任何人真正帮助我们解决细节,但我只是把这个问题扔在那里,看看是否有人经历过这种情况以及他们在哪里发现泄漏是或者他们做了什么来解决这个问题。

另外,对其他可以提供帮助的工具的任何输入,比如 valgrind?

4

1 回答 1

1

只有没有任何 ORM 调用的功能测试

这是我一直试图阻止的:使用 Mock-Objects 而不是访问数据库。

您可以尝试的是新的 PHPUnit-Version,它具有测试的进程隔离(通过额外的命令行参数激活)。那应该对你有帮助。它速度较慢,但​​有助于解决内存问题

于 2010-09-02T14:22:40.700 回答