View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0001717 | Xdebug | Code Coverage | public | 2019-11-18 10:15 | 2019-12-09 08:04 |
| Reporter | jhassler | Assigned To | |||
| Priority | high | Severity | major | Reproducibility | always |
| Status | closed | Resolution | fixed | ||
| Product Version | 2.8.0 | ||||
| Target Version | 2.8.1 | Fixed in Version | 2.8.1 | ||
| Summary | 0001717: Code coverage turned slow after update from 2.7.2 to 2.8.0 | ||||
| Description | The code coverage performance in our CI pipeline suddenly decreased after Oct 31 due to the update from xdebug 2.7.2 to 2.8.0. Before (xdebug 2.7.2): 8 minutes PHPUnit 7.5.12 I switched the pipeline back to 2.7.2 and the coverage performance was back to normal - that's why I can exclude side effects due to other versions. | ||||
| Steps To Reproduce | Can someone confirm this? | ||||
| Tags | performance, php7.1, php7.2, php7.3 | ||||
| Operating System | Debian | ||||
| PHP Version | 7.1.30-7.1.34 | ||||
|
|
We've also had similar performance issues. We originally noticed it in CI, but didn't realise what the problem was. Our PHPUnit tests with coverage reports went from taking a little over 2 minutes, to over 25 minutes. When I looked back over the logs I realised that the last fast run was with Xdebug 2.7.2, and the first slow one was using 2.8.0. Rolling back to 2.7.2 has restored performance. We're running this in Docker. I've attached a copy of the Dockerfile, along with the PHP config. I've also run Strace against both 2.7.2 and 2.8.0 to see what's going on. The specific command that I ran INSIDE the container was:
I've attached the output from Strace for both 2.7.2 and 2.8.0 as well. I hope this helps. In the meantime, we're locked to the older version and our tests are running quickly enough for us |
|
|
Just tried again with this command: strace -r -Tfe trace=open vendor/bin/phpunit --testdox --colors=always --coverage-html report Here's a sample of the output:
I've tried running it with the volume in default, delegated and cached modes, but the performance is the same |
|
|
same issue for us. using phpdbg helps a little bit but it is still slower than the 2.7.2 version of xdebug but extremely faster than 2.8.0 xdebug |
|
|
Same issue for me. 2.7.2 resulting in my CI run time of 8 minutes. With 2.8.0 it times over after 1 hour. |
|
|
FYI for my CI I use php:7.3-alpine, php:7.2-alpine and php:7.1-alpine. Happens on shared Gitlab CI runners and local runner on MacOS 10.14.6. Rolling back to xdebug-2.7.2 improved the run times. |
|
|
FWIW, I can reproduce this, and I know where the problem lies — but not quite yet what the problem is, and how to solve it. |
|
|
Fixed in GIT for 2.8.1 |
|
|
We're still finding performance very slow in CI with 2.8.1 Attached is the strace that I ran locally. It took over an hour to run coverage locally with strace. CI has gone from 1m 52s to 9m 58s for PHPUnit with coverage alone. It's better then 25m, but it's still too slow to be practical for us. We're only on PHP 7.2, looking to upgrade to 7.3 some time soon. Because we use ElasticBeanstalk and they always take almost a year to catch up to the latest PHP release we've got almost a year before we'll be able to upgrade to PHP 7.4, and since 2.7 won't work with 7.4 we'll see how the situation looks then. |
|
|
We too. Our builds used to take 15-20m, now > 2h |
|
|
We're using PHP 7.1.33 btw (on Ubuntu 16.04) PHPUnit version 5.7.27 |
|
|
Confirm. Ubuntu 16.04 + PHP 7.1 + Xdebug 2.8.1 extremely slow |