Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix performance of #7714 by forcing use of Zip2{Any,Any}
discovered using TRACE_INFERENCE. this was specializing Zip2 for all method signatures processed by the reflective code.
- Loading branch information
052f54e
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cool fix!
Any lessons we can learn from this and put into the "Performance tips" section of the manual?
052f54e
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess the general lesson is that reflective code can wreak havoc with julia's specialization mechanism. Specialization depends on the sparseness of interactions between types, but when you have code whose explicit purpose is to iterate over everything in the system that assumption is violated.