Hookalyzer's development is stalled because of severe performance issues in the diffing iterator.

The current iterator implementation is highly inefficient. It walks data trees (trees/branches being either an object or an array) top-down. From each branch value in the tree, it fully descends to each reachable leaf. This results in a some kind of polynomial-ish worst-case running time, primarily determined by the height of the tree. (I think - it might not actually be this bad, but even if not it's somewhere around quadratic for the worst-case)

A better implementation could work from the bottom of the trees up and never redescend. In theory, we could get it up to O(n), worst-case running time.

Because Drupal 8 passes data structures with >50 levels of nesting through alters (cough queries cough views cough), this hits us very, very hard.

Comments

sdboyer’s picture

Issue summary: View changes
sdboyer’s picture

Issue summary: View changes
sdboyer’s picture

Issue summary: View changes