The script I used to pinpoint this problem and test my temporary fix, and later Matteo's PR is linked in the bug report I oppened. Should be simple to run if anyone is interested in trying. I found this on pdo_pgsql, but looking at the code it looks like the problem should happen on other pdo_* drivers too, I can do more tests if it matters.

On 28. 08. 2020. 14:50, Gabriel Caruso wrote:
On Fri, 28 Aug 2020 at 09:19, Matteo Beccati <p...@beccati.com> wrote:

Hi George,

/cc release managers - pls don't hate me ;-)

On 27/08/2020 10:23, Matteo Beccati wrote:
On 26/08/2020 19:28, G. P. B. wrote:
This can still target PHP 8.0 as this seems to be akin to a bug this
might even be applicable to PHP 7.3/7.4. Anyways, good catch.
You could be right. I've created a draft PR for review: Dino could yo>
please benchmark it and get back with results?> >
https://github.com/php/php-src/pull/6047
The PR seems to fix the issue:

https://bugs.php.net/bug.php?id=80027

Dino's bench script takes 3s on vanilla PHP8 and 120ms with the patch,
so it's seems a fairly good win. The fetching part alone goes down from
2.9s to 3ms.

The way it's been fixed should be backwards and forwards compatible with
no real need to bump PDO_VERSION_API: external PDO driver extensions
wanting to use the param_evt_skip flags could simply set them via a
preprocessor macro when compiled for PHP8+.

For now I've optimised the pdo_pgsql/mysql/sqlite extensions, but I will
look into the other bundled ones too.

Would you think it's sensible to treat this as a bug fix and target
7.3+? Or is it better to do PHP8 only? Or?


Cheers
--
Matteo Beccati

Development & Consulting - http://www.beccati.com/


Hello Matteo

Let's have this patch merged into PHP 8.0 (`master` branch as of today), I
have nothing against it.

About PHPs 7.3 and 7.4: if the performance improvements are this massive as
describe in this email, I'm :+1: to have it on those versions as well.

Kind regards,


--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php

Reply via email to