View Issue Details

IDProjectCategoryView StatusLast Update
0001668XdebugProfilingpublic2020-12-12 05:54
Reporteralforg Assigned To 
PriorityhighSeveritymajorReproducibilityalways
Status resolvedResolutionno change required 
Platformx86_64OSCentOSOS Version7.6
Product Version2.6.1 
Summary0001668: Just installing xdebug slows php (both apache OR cli) down 6 to 12 x
Description

On 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

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

weitzman

2020-12-12 05:54

reporter   ~0005589

Mostly fixed in 3.x version as per 0001872