2011-01-20 9 views
11

大きなパッケージにR CMD roxygenを実行するとかなりの時間がかかります。明らかに非効率的であるだけでなく、最後のroxygen呼び出し以降にファイルが変更されたかどうかに関係なく、すべてを通過します。roxygenのスピードアップ

スピードアップのヒントを教えてください。

答えて

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 

} 

私はそれらは、あなたが必要とする唯一の変化であると思うが、私はわかりません。それは、ロキシーゲンの速度を一桁上げる。

+0

RoxygenのフォークはGitHubで利用できますか? – Sharpie

+1

まだ - 私はまだロキシーゲンの開発が元気になることを望んでいます。 – hadley

+1

あなたが管理者ではなく、ユーザをRoxygenメーリングリストに誘導していることを示す、免責事項と問題のあるトラッカーを掲示して投稿するのは害ではありません。増加した交通量は開発努力を動機づける可能性がある。 – Sharpie

関連する問題