5

phpMyAdmin,我们遭受了一段时间奇怪的测试套件减速。当启用 xdebug(代码覆盖)并且 ob_start/ob_end_clean 块中存在错误时,我们已经能够将问题追溯到情况。删除其中任何一个确实会大大减少测试套件的时间。

                xdebug       enabled      disabled
ob_start failure tests
enabled                       20 min        15 s
disabled                      1 min         15 s

这只是为了说明差异有多大以及我们为什么要摆脱它。

在较小的规模下,这可以通过单个测试显示test/classes/PMA_Advisor_test.php

                xdebug       enabled      disabled
ob_start failure tests
enabled                       7.2 s         0.1 s
disabled                      2.6 s         0.1 s

这里的区别是删除一个测试的单个数据集(如果您要查看源,它是最后一个数据集)并导致测试花费不到一半的时间!更新:在这种特殊情况下,可以使用来缓解问题xdebug.default_enable=0,但这对于整个测试套件并没有太大变化。

乍一看它确实像 xdebug 中的一些错误,但我们无法生成比上面更小的测试用例,这听起来很可疑。有什么想法可以进一步调试问题,以及如何找出实际导致速度变慢的原因吗?

4

2 回答 2

1

由于探查器处于打开状态,我遇到了这个问题,这也将生成巨大的缓存研磨文件。

检查 xdebug.profiler_enable = 0

> 文档

于 2015-04-05T08:52:57.590 回答
0

我的测试很慢,因为我出于某种我现在不记得的原因启用了 show_local_vars。 http://xdebug.org/docs/all_settings 希望这些信息会有所帮助。

于 2012-08-19T19:30:39.467 回答