Question
Running R CMD roxygen
sur un gros paquet peut prendre un temps assez long. Il est évidemment inefficace aussi bien qu'il passe par tout, peu importe si un fichier a changé depuis le dernier appel de roxygen.
Les conseils sur la façon d'accélérer les choses?
La solution
Roxygen2> 3.0.0 est beaucoup plus rapide, et n'a plus besoin de la mise en cache.
Dans ma version locale de roxygen, je:
library(memoize)
cached.parse.ref <- memoize(parse.ref)
cached.parse.srcfile <- memoize(parse.srcfile)
parse.file <- function(file) {
srcfile <- srcfile(file)
res <- try(cached.parse.srcfile(srcfile), silent = TRUE)
if (inherits(res, "try-error")) {
stop("Can't pass", file, "\n", res, call. = FALSE)
}
res
}
parse.srcfile <- function(srcfile) {
srcrefs <- attributes(parse(srcfile$filename,
srcfile=srcfile))$srcref
if (length(srcrefs) > 0)
parse.refs(zip.list(prerefs(srcfile, srcrefs), srcrefs))
else
nil
}
Je pense que ce sont les seuls que vous changements sont nécessaires, mais je ne suis pas sûr. Il accélère roxygen par un ordre de grandeur.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow