-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
slowdown with Val dispatch in v0.6 #21730
Comments
That's a textbook example of misusing |
Seems related to #21323. In this case since there is a 0-arg constructor we're forced to dispatch on the type instead of other arguments. |
For the `Type` method table, use the top-level `any` cache to split based on whether the first argument is a leaf type. Leaf types use the hash table, and non-leaf types skip the first argument and try to split on the second argument instead.
For the `Type` method table, use the top-level `any` cache to split based on whether the first argument is a leaf type. Leaf types use the hash table, and non-leaf types skip the first argument and try to split on the second argument instead.
For the `Type` method table, use the top-level `any` cache to split based on whether the first argument is a leaf type. Leaf types use the hash table, and non-leaf types skip the first argument and try to split on the second argument instead.
For the `Type` method table, use the top-level `any` cache to split based on whether the first argument is a leaf type. Leaf types use the hash table, and non-leaf types skip the first argument and try to split on the second argument instead.
For the `Type` method table, use the top-level `any` cache to split based on whether the first argument is a leaf type. Leaf types use the hash table, and non-leaf types skip the first argument and try to split on the second argument instead.
Uses the `any` cache to skip all non-leaf slots when a later slot is splittable.
Uses the `any` cache to skip all non-leaf slots when a later slot is splittable.
Uses the `any` cache to skip all non-leaf slots when a later slot is splittable.
Uses the `any` cache to skip all non-leaf slots when a later slot is splittable.
Uses the `any` cache to skip all non-leaf slots when a later slot is splittable.
Uses the `any` cache to skip all non-leaf slots when a later slot is splittable.
closed by ecff624 ? |
No. I have 44ns on 0.5, 6μs on 0.6 and 1.8μs on master. So it has improved since 0.6, but it's nowhere close to 0.5. EDIT: D'oh, that hasn't been merged yet, so it cannot fix the issue on master. |
900 ns now. |
160ns now. Is that good enough to close? |
Is almost hundred times slower with 0.6 (40 ns with v0.5 vs 4 μs with v0.6). Causes significant slowdown in ArrayFIre.jl package when types have to inferred.
The text was updated successfully, but these errors were encountered: