Skip to content
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

Optimise intchron() #3

Open
7 tasks
joeroe opened this issue Oct 12, 2020 · 0 comments
Open
7 tasks

Optimise intchron() #3

joeroe opened this issue Oct 12, 2020 · 0 comments
Labels
enhancement New feature or request
Milestone

Comments

@joeroe
Copy link
Owner

joeroe commented Oct 12, 2020

We should try to make IntChron queries as fast as possible. Currently, retrieving the entire database (without tabulation) takes:

system.time(intchron("all", tabulate = FALSE))
#>   user  system elapsed 
#> 48.587   0.579 436.211 

user+system time is low (but could still be improved), so we can assume most of the time is spent waiting for responses to IntChron requests.

Ideas for optimisation:

  • Group batches of requests into vectorised calls to intchron_request() as often as possible
  • Parallelise requests:
    • At the least it should be safe to execute recursive calls to intchron_crawl() in parallel, since crawling each branch is independent of other parts of the tree.
    • Also investigate using ... in intchron_request() and possibly elsewhere.
    • But need to ensure these don't place too much load on the IntChron server, since we already get timeouts when running the relatively modest queries in the examples and vignettes simultaneously as R CMD checks.
  • Improve filtering/pattern-matching options in intchron_crawl() and use them aggressively in intchron()
  • Investigate where the user CPU time is being spent
@joeroe joeroe added this to the v1.0 milestone Oct 13, 2020
@joeroe joeroe added the enhancement New feature or request label Oct 13, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant