[php-src] Issue #20224: [Windows] PHP 8.4 shows degraded performance when built with OpenSSL 3.0.* (suggest using OpenSSL 3.1+)

From: Date: Sun, 19 Oct 2025 16:49:20 +0000
Subject: [php-src] Issue #20224: [Windows] PHP 8.4 shows degraded performance when built with OpenSSL 3.0.* (suggest using OpenSSL 3.1+)
Groups: php.bugs 
Request: Send a blank email to [email protected] to get a copy of this message
Issue: https://github.com/php/php-src/issues/20224
Author: abdul-khan-lrn

### Description

**Description**

When upgrading from PHP 8.1 to PHP 8.4, we observed a significant slowdown in HTTPS requests made
using cURL.
The same code that performs normally on PHP 8.1 takes almost 10× longer on PHP 8.4.

**Reproduction Code**
```php
<?php
// SSL verification ON 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
```
**Environment**

PHP 8.4.13 (Windows, NTS x64, built with Visual C++ 2022)
OpenSSL 3.0.16 (11 Feb 2025) — as bundled with the official Windows build
cURL used with HTTPS endpoints (SSL verification ON)

**Observed Behavior**

HTTPS requests via curl_exec() are approximately 10× slower in PHP 8.4 compared to PHP 8.1.
The slowdown appears only when SSL verification is enabled.

**Analysis**

OpenSSL 3.0 is known to have performance regressions related to locking and property parsing:
 [OpenSSL issue #17627](https://github.com/openssl/openssl/issues/17627?utm_source=chatgpt.com)
Since the current PHP 8.4 Windows binaries are built with OpenSSL 3.0.16, this performance
degradation is likely inherited from that version.

**Suggested Resolution**

Please consider building PHP 8.4 for Windows with OpenSSL 3.1 or later, which includes performance
improvements addressing the above issues.



### PHP Version

```plain
PS C:\Users\vagrant> php -v
PHP 8.4.13 (cli) (built: Sep 23 2025 14:36:17) (NTS Visual C++ 2022 x64)
Copyright (c) The PHP Group
Zend Engine v4.4.13, Copyright (c) Zend Technologies
    with Zend OPcache v8.4.13, Copyright (c), by Zend Technologies
PS C:\Users\vagrant> php -i | findstr /R /C:"OpenSSL" /C:"openssl"
SSL Version => OpenSSL/3.0.16
openssl
OpenSSL support => enabled
OpenSSL Library Version => OpenSSL 3.0.16 11 Feb 2025
OpenSSL Header Version => OpenSSL 3.0.16 11 Feb 2025
Openssl default config => C:\Program Files\Common Files\SSL/openssl.cnf
openssl.cafile => C:\Program Files\PHP\8.4.13\CACert\cacert.pem => C:\Program
Files\PHP\8.4.13\CACert\cacert.pem
openssl.capath => no value => no value
OpenSSL support => enabled
PS C:\Users\vagrant>
```

### Operating System

Windows


Thread (1 message)

  • abdul-khan-lrn
« previous php.bugs (#251087) next »