[php-src] Issue #10119: CURL - massive Performance issue on Windows 10

From: Date: Sat, 17 Dec 2022 00:02:31 +0000
Subject: [php-src] Issue #10119: CURL - massive Performance issue on Windows 10
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-243169@lists.php.net to get a copy of this message
Issue: https://github.com/php/php-src/issues/10119 Author: aeberhard ### Description The following code: ```php <?php $starttime = microtime(true); $ch = curl_init(); if (0 === curl_errno($ch)) { $header = []; $header[] = 'Accept: application/vnd.github+json'; $header[] = 'X-GitHub-Api-Version:2022-11-28'; $options = [ CURLOPT_URL => 'https://api.github.com/rate_limit', CURLOPT_RETURNTRANSFER => true, CURLOPT_USERAGENT => 'PHP', //CURLOPT_CONNECTTIMEOUT => 0, //CURLOPT_TIMEOUT => 5, //CURLOPT_HTTPHEADER => $header, //CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4, //CURLOPT_ENCODING => '', //CURLOPT_DNS_USE_GLOBAL_CACHE => false, ]; $log = fopen(__DIR__. '/curl.log', 'w'); if (false !== $log) { $logoptions = [ CURLOPT_VERBOSE => true, CURLOPT_STDERR => $log, ]; } $curloptions = $options + $logoptions; curl_setopt_array($ch, $curloptions); $response = curl_exec($ch); $info = curl_getinfo($ch); $httpCode = (string) curl_getinfo($ch, CURLINFO_HTTP_CODE); echo '<pre>'; var_dump([$httpCode, $response, $info]); echo '</pre>'; } $duration = microtime(true) - $starttime; echo "Runtime: $duration Sek."; ``` As you can see I tried with several Curl-Options Resulted in this output: ``` Runtime: 0.76369309425354 Sek. Runtime: 0.6199951171875 Sek. Runtime: 0.6086049079895 Sek. Runtime: 0.56775498390198 Sek. Runtime: 0.54858207702637 Sek. ``` Performance of the Script in other PHP Versions on same Host: ``` PHP 7.4 Runtime: 0.11398887634277 Sek. Runtime: 0.22311997413635 Sek. Runtime: 0.1849901676178 Sek. Runtime: 0.12297105789185 Sek. Runtime: 0.16944289207458 Sek. PHP 8.0 Runtime: 0.1490170955658 Sek. Runtime: 0.11332702636719 Sek. Runtime: 0.16415405273438 Sek. Runtime: 0.19613790512085 Sek. Runtime: 0.14559698104858 Sek. PHP 8.1 Runtime: 0.13851690292358 Sek. Runtime: 0.11393594741821 Sek. Runtime: 0.10096192359924 Sek. Runtime: 0.14624786376953 Sek Runtime: 0.11632513999939 Sek. ``` In PHP 8.2 the the Curl pretransfer_time is up to 5 times bigger than in other versions. ``` PHP 8.0 ["total_time"]=> float(0.127489) ["namelookup_time"]=> float(0.005659) ["connect_time"]=> float(0.058811) ["pretransfer_time"]=> float(0.105881) PHP 8.2 ["total_time"]=> float(0.522058) ["namelookup_time"]=> float(0.006427) ["connect_time"]=> float(0.036172) ["pretransfer_time"]=> float(0.5042) ``` ### PHP Version PHP 8.2.0 ### Operating System Windows 10 Enterprise 21H2

« previous php.bugs (#243169) next »