-
Notifications
You must be signed in to change notification settings - Fork 129
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
Faster code analysis #573
Comments
So apparently, we can remove a lot of overhead just by removing calls to |
After #574, the benchmarks look much better. library(drake)
n <- 1000
x <- parse(
text = paste0(
"max(",
paste0(paste0("target_", seq_len(n)), collapse = ", "),
")"
)
)[[1]]
pkgconfig::set_config("drake::strings_in_dots" = "literals")
profvis::profvis(drake:::command_dependencies(x)) Created on 2018-11-05 by the reprex package (v0.2.1) |
Now, the bottleneck really is |
I plan to emulate
|
I learned a lot from the
I will implement this in branch 573. The merge into |
To close this issue, it is enough to:
|
In #625, the bottleneck seems to appending stuff |
The last thing I will try before closing this issue is to pre-compute an |
As of 4cce238, I think I have exhausted the lowest-hanging fruit to speed up the code analysis. A lot more work needs to be done to speed up I am closing this issue in favor of more targeted ones that will come up later. |
I will say that I could really use help with the profiling. Realistic test cases are usually too large for |
You mentioned this previously, and I'm happy to take a hard look if useful. |
Thanks, that would be fantastic! Profiling is going to be super important going forward. I expect #630 will solve #572 and speed things up, but there will be more bottlenecks after that. One thing I have noticed: |
I think what we're after is |
Related: #41. The code analysis for automatic dependency detection is the biggest bottleneck in initialization. A couple goals:
codetools::findGlobals()
.I think we should do (1) before (2).
The text was updated successfully, but these errors were encountered: