-
Notifications
You must be signed in to change notification settings - Fork 35
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
Minor inference and specialization improvements #461
Conversation
Codecov Report
@@ Coverage Diff @@
## master #461 +/- ##
==========================================
+ Coverage 89.69% 89.79% +0.09%
==========================================
Files 12 12
Lines 2330 2342 +12
==========================================
+ Hits 2090 2103 +13
+ Misses 240 239 -1
Continue to review full report at Codecov.
|
end | ||
_scopename(sym) = sym |
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.
Just to check my understanding, does this change reduce a chance of (unused) specialization, right ? (maybe otherwise _scopename(parent, child, rest...) = Expr(:., parent, _scopename(child, rest...))
can recur back into this method ?)
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.
It was more that attempts to call _scopename(sym)
were being implemented by runtime-dispatch. Now that I think about it, that would also be true of longer module paths: the length of modpath
is not inferrable. I should rewrite this so it never dispatches to anything. (later, busy with other things now)
Woot, with these changes here and a couple in LoweredCodeUtils & Revise, I've gotten the time for first revision down to 1.6s, about half of where it was a week ago. (xref JuliaLang/julia#38906, which is responsible for all but 200ms of this gain). A lot of this is just me playing with the new SnoopCompile tools and giving them a workout, wanting to make sure that they actually work to discover things that help latency. But certainly nice to have on their own. |
Investigation via `SnoopCompile.@snoopi_deep` identified several opportunities to reduce latency: - JuliaLang/julia#38906 - JuliaDebug/JuliaInterpreter.jl#461 - JuliaDebug/LoweredCodeUtils.jl#58 Together with the changes here, the aggregate effect is to reduce the time for the first revision from 3.1s to about 1.5s. That's much more reasonable.
Investigation via `SnoopCompile.@snoopi_deep` identified several opportunities to reduce latency: - JuliaLang/julia#38906 - JuliaDebug/JuliaInterpreter.jl#461 - JuliaDebug/LoweredCodeUtils.jl#58 Together with the changes here, the aggregate effect is to reduce the time for the first revision from 3.1s to about 1.5s. That's much more reasonable.
No description provided.