Hi Alan,

It looks like what is slowing everything down significantly is the approach you've taken to look up the ExperimentHub resources that you control by name every time you need to access them. E.g:

Look up by name:

  > system.time(tt_alzh <- ewceData::tt_alzh())
  snapshotDate(): 2021-03-22
  see ?ewceData and browseVignettes('ewceData') for documentation
  loading from cache
     user  system elapsed
    2.496   0.024   9.460

Direct access:

  > system.time(tt_alzh <- eh[["EH5373"]])
  see ?ewceData and browseVignettes('ewceData') for documentation
  loading from cache
     user  system elapsed
    1.195   0.012   2.060

ewceData::tt_alzh() is just one of the 18 utility functions defined in ewceData that perform this lookup over and over again in the vignette and man page. This lookup is expensive and not needed since the ExperimentHub IDs that were assigned to your resources are fixed and known in advance.

Note however that it's a good idea to not expose these IDs to the end user (they might change at some point if you need to update these resources on ExperimentHub) so it's actually recommended to lookup by name in user-visible code.

Another easy improvement is that you drop dependency on ExperimentHubData. This will reduce the nb of deps (direct and indirect) from 130 to 94. There are likely other deps that you could try to get rid of.

Hope this helps,
H.

On 3/22/21 2:38 AM, Murphy, Alan E wrote:
Hi all,

I am working on the development of [EWCE](https://github.com/NathanSkene/EWCE) 
but have hit an issue with R CMD check's runtime. I have been informed this 
test needs to be completed in 15 minutes but mine is currently running in ~24 
minutes and I am looking for methods to speed this up. The main culprits for 
the runtime issue are:

checking examples (5m 49.8s)
Running �testthat.R� [308s/469s] (7m 49.1s)
checking for unstated dependencies in vignettes (7m 49.4s)
checking re-building of vignette outputs (5m 12s)

With the exception of using smaller datasets which I will consider myself, is 
there known ways of speeding these up? EWCE derives data from an Experimenthub 
package [ewceData](https://github.com/neurogenomics/ewceData) for its examples, 
tests and vignette. This is run repeatedly and I have noted this takes a 
significant amount of time to load a dataset. Is there anyway of caching the 
datasets for all the checks or more generally of speeding this up?

I have heard of the use of [long 
tests](http://bioconductor.org/developers/how-to/long-tests/) which aren't run 
daily by Bioconductor but are these still checked in R CMD Check? Is there any 
other way to exclude my tests from the R CMD Check given they aren't a 
necessity from Bioconductor?

Does checking for unstated dependencies in vignettes have a long runtime based 
on the number of package dependencies? If I just export specific functions from 
packages will this check time reduce?

Lastly, is there any way to get an exception of the 15 minute maximum? I may be 
ill-informed but is the max time for packages on Bioconductor's daily check 40 
minutes which my code in its current state would complete by.

Kind regards,
Alan.


        [[alternative HTML version deleted]]


_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel


--
Hervé Pagès

Bioconductor Core Team
hpages.on.git...@gmail.com

_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel

Reply via email to