Improve performance of isEqual() by skipping Comparator Factory #1478
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.
For our case, a lot of time during test evaluation is spent on the comparison of different values through the
assertEquals()
assertion. See for example the performance trace of a test run:This PR will change PHPUnit to do a quick strict comparison check before doing an equality check. This check is very cheap, and is the most common case during test runs. If the expected and the actual value are not identical, the existing code path is followed and the Comparator library is used.
Performance of tests with this patch:
Performance with base PHPUnit (4.3.1)
Performance improvement is about 25-30%.