View Issue Details

IDProjectCategoryView StatusLast Update
0002395XdebugUncategorizedpublic2026-02-03 15:37
Reporterkieranfj Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
PlatformWindowsOSWindows 11OS Version24H2 26100.7392
Product Version3.5.0 
Fixed in Version3.5.1 
Summary0002395: Severe performance degredation on Windows
Description

I have a WAMPServer based setup locally with various PHP versions stretching back to 8.0.
Xdebug in daily use across multiple separate projects. I switch PHP versions semi regularly. Primarily 8.3/8.4

Previous versions worked without any noticeable or unacceptable delay (e.g xdebug off = 4 seconds to process, xdebug on 5 seconds) across any of the PHP version.

Recently Xdebug 3.5.0 was released via the WAMPServer page https://wampserver.aviatechno.net/ and i installed it, which then updated all the PHP versions installed for me as intended.

However i have found that when running 3.5.0 (.dll is loaded, apache service started etc) that a process that typically takes 4-6 seconds, inflates to 40-50 seconds doing the same thing.
If i switch back the versions by changing the .dll being loaded in php.ini to the previous version (3.4.7, or if i got to PHP8.0 3.4.4

The general way of working this out was to put simple micro timestamp start - micro timestamp stop before and after method execution of my code, pushed into a generic debug log of our own creation.

Attached is a debug dump that might not make sense, but it has micro time just before some file content

Steps To Reproduce

Start wamp PHP 8.4 with 3.5.0
Do some heavy xml checking/processing

Do the same with 3.4.4
Compare the time it takes on both.

Additional Information

php_xdebug-3.4.4-8.4-ts-vs17-x86_64 - 4-6 seconds
php_xdebug-3.5.0-8.4-ts-vs17-x86_64 - 40-50 seconds

xdebug.mode = develop
xdebug.log_level = 7

I dont change xdebug settings between the versions, i have changed php.ini to point at the different dll's and restarted the apache service to pick it up

The process is basically:
Request comes in
Bunch of login, session check, security etc before we hit this specific process
We run 4 methods that i have put debug lines around to track microtime before and after and output the result
We have 20 files
We file_get_contents each file in turn - files contain XML
We simplexml_load_string the content
We then check for xml paths and some small quick loops (//button //grid //field etc)
Output microtime before and after each mini loop
Output microtime for the whole method
Output microtime for other methods afterwards which also indicate

each log file should be the same incoming request with the same file being loaded in the same sequence.

The only manual alteration to the files i have made is to remove some folder structure information for privacy reasons

TagsNo tags attached.
Operating SystemWindows
PHP Version8.4.10-8.4.19

Relationships

has duplicate 0002397 resolvedderick Very slow with Xdebug 3.5.0 
has duplicate 0002391 resolvedderick Code Coverage times out on random tests 

Activities

derick

2026-01-14 11:06

administrator   ~0007445

Could you try setting xdebug.control_socket to off, and see if that alleviates the slow down/timeout?

kieranfj

2026-01-14 13:53

reporter   ~0007447

Hi Derick

Since posting the issue, i have managed to take a portion of our internal code and put it into small, self contained test project.
It exhibits the slow down, but its not a full 30-40s portion like the original .txt files show as its running significantly less code, but the 10x performance hit between runs is evident.
For example With 3.4.4 it is 0.2 seconds, with 3.5.0 it is 2 seconds to provide context to the below.
I would provide the code it but its internal code and i don't think you'd what to start working what/why we're doing what we're doing unless i can reduce the test further.

Anyway, for that reduced test:

Xdebug 3.5.0
With xdebug.control_socket to off

Starting performance test...
Execution time: 0.15103507041931 seconds
Finished performance test...

With xdebug.control_socket commented out:
Starting performance test...
Execution time: 1.9091730117798 seconds
Finished performance test...

Same code, same test, apache service restarted in between php.ini changes.

Just for comparison: With xdebug 3.4.4

With xdebug.control_socket to off
Starting performance test...
Execution time: 0.14583110809326 seconds
Finished performance test...

With xdebug.control_socket commented out:
Starting performance test...
Execution time: 0.14948511123657 seconds
Finished performance test...

On the original full test (work machine) 3.5.0 i did a quick run of our code (so it might not be 100% apples to apples)
With xdebug.control_socket to off
About 9 seconds

With xdebug.control_socket commented out:
about 47 seconds

Thanks
Kieran

derick

2026-01-22 16:24

administrator   ~0007453

The fix for this issue, merged through https://github.com/xdebug/xdebug/pull/1060, should alleviate the need for turning the control sockets off again on Windows. You'll find this in the (upcoming) 3.5.1 release.

derick

2026-01-22 16:27

administrator   ~0007455

FWIW, you can try out that development version with the binarires at https://github.com/xdebug/xdebug/actions/runs/21256100508#artifacts