View Issue Details

IDProjectCategoryView StatusLast Update
0001668XdebugProfilingpublic2019-07-12 09:49
ReporteralforgAssigned Toderick 
PriorityhighSeveritymajorReproducibilityalways
Status resolvedResolutionno change required 
Platformx86_64OSCentOSOS Version7.6
Product Version2.6.1 
Target VersionFixed in Version 
Summary0001668: Just installing xdebug slows php (both apache OR cli) down 6 to 12 x
DescriptionOn a Centos 7.x machine, php7.3.

The mere installation of xdebug has the effect described in subject. When installing, the file /etc/php.d/xdebug.ini is created, which loads libxdebug.so. However, all of xdebug debug and tracing functions are still disabled. The overhead incurred is dramatic, from 6 x up to almost two orders of magnitude, both in web AND CLI execution. strace-ing a CLI script shows an unordinate amount of time is spent syscalling getimeofday - so it may be related to profiling.

This also happens on CentOS6, php56...
Steps To Reproduce(1) Run the attached script. Record the output
(2) yum install php-pecl-xdebug
(3) rerun script, note the increased execution time

Actual slowdown is code dependent - 10-20 times is not uncommon for wordpress sites.
Tagsperformance
Operating System
PHP Version7.2.10-7.2.14

Activities

alforg

2019-05-20 14:34

reporter  

bench.php (3,167 bytes)

derick

2019-06-28 11:22

administrator   ~0005043

A debugger does work, so that makes it slow down the request. The benchmark you provided is not representative of a real workload of PHP, and might give skewed results. I hope to address some of the performance impacts in Xdebug 3, but as there is no actionable point in this issue report, I am closing it.

alforg

2019-07-12 09:49

reporter   ~0005057

I agree that any debug code/extension will have a impact. What this issue points at, however, is that the its mere presence (module installed, unconfigured) slows down a site of amounts that can be above 10x. Slow downs of this magnitude are (in my experience) unexpected when not actively tracing/debugging the code. The benchmark is obviously a toy, but the effect is consistent with what can be witnessed on live sites. At the moment, I have been forced to nuke xdebug from all the servers under my company's administration (the production ones, at least).

Issue History

Date Modified Username Field Change
2019-05-20 14:34 alforg New Issue
2019-05-20 14:34 alforg Tag Attached: performance
2019-05-20 14:34 alforg File Added: bench.php
2019-06-28 11:22 derick Assigned To => derick
2019-06-28 11:22 derick Status new => resolved
2019-06-28 11:22 derick Resolution open => no change required
2019-06-28 11:22 derick Note Added: 0005043
2019-07-12 09:49 alforg Note Added: 0005057