View Issue Details

IDProjectCategoryView StatusLast Update
0001668XdebugProfilingpublic2020-04-03 22:42
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).

lucasbustamante

2020-04-03 22:42

reporter   ~0005374

I urge you to re-open this issue.

I've got 2x slower requests when Xdebug module is loaded but completely disabled. I've seen a lot of articles around the web talking about this, and I've confirmed this happens with my co-workers as well, in various PHP environments with Xdebug.

I understand that a debugging tool will slow down requests, but I'd expect it doesn't impact a request that is not being debugged or profiled, especially if Xdebug is completely disabled, with all options "Off".

Do you know where this performance degradation for the mere presence of Xdebug comes from?

More information here: https://stackoverflow.com/questions/60985072/how-to-load-xdebug-module-into-php-without-performance-overhead

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
2020-04-03 22:42 lucasbustamante Note Added: 0005374