Performance: use FQN for functions which can use PHP7 compile time opcodes by jrfnl · Pull Request #784 · PHPCompatibility/PHPCompatibility

@jrfnl

…codes

Functions in PHP are namespaced as well, however, when PHP cannot find the function in the namespace, it will fall through to the global namespace.

The step to first check within the namespace can be skipped by either using `use func ...` (PHP 5.6+) or by prefixing the function with a `\`.

While this offers a small performance gain as a general practice, using this for the special compiled functions should offer a noticeable performance gain when running PHPCompatibility on PHP 7+.
The special compiled function are replaced by opcodes at compile time, but only if it's clear at compile time that the global PHP native functions will be used.
For the list of functions, see: https://github.com/php/php-src/blob/f2db305fa4e9bd7d04d567822687ec714aedcdb5/Zend/zend_compile.c#L3872

This PR implements this throughout the codebase.

derrabus

wimg

wimg approved these changes Jan 13, 2019

@wimg wimg deleted the feature/use-php7-opcache-when-available branch

January 13, 2019 22:26

@jrfnl jrfnl mentioned this pull request

Sep 8, 2020