Conversation
…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
approved these changes
Jan 4, 2019
wimg
approved these changes
Jan 13, 2019
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Performance optimization along the same lines as #783
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.