11

大きなパッケージで実行R CMD roxygenすると、かなり長い時間がかかる場合があります。最後のroxygen呼び出し以降にファイルが変更されたかどうかに関係なく、すべてを処理するため、明らかに非効率的です。

物事をスピードアップする方法に関するヒントはありますか?

4

1 に答える 1

12

Roxygen2 > 3.0.0 は大幅に高速になり、キャッシュが不要になりました。


私のローカルバージョンのroxygenには、次のものがあります。

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

}

必要な変更はこれらだけだと思いますが、よくわかりません。これにより、roxygen が 1 桁高速化されます。

于 2011-01-20T20:43:02.343 に答える