Ported ListDiff to DOMDocument #96
Merged
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.
Description
As a preparation to move away from string manipulation (HtmlDiff) and having to ping pong between DOMDocument (TableDiff) / SimpeXML + extended library (ListDiff), I have ported the ListDiff to also use DOMDocument.
We can now get rid of the third party
php-simple-html-dom-parser.Huge string to dom overhead
We have huge overhead now in both ListDiff and TableDiff where we keep going from an html string to objects and back, we should get rid of this once HtmlDiff is also ported
Performance impact
I have been doing loads of testing, and the performance impact is minimal, it turns out it is slightly faster.
In some special cases it can even be 30% faster, but that is not in really realistic scenario's
Big cleanup
All the old ListDiff code was still in the codebase, but none of it was used since it was replaced by HtmlDiffList so that was a huge easy cleanup