2011-01-20 36 views
11

Chạy R CMD roxygen trên một gói lớn có thể mất nhiều thời gian. Nó rõ ràng là không hiệu quả cũng như nó đi qua tất cả mọi thứ bất kể một tập tin đã thay đổi kể từ cuộc gọi roxygen cuối cùng.Tăng tốc roxygen

Bất kỳ mẹo nào về cách tăng tốc mọi thứ?

Trả lời

12

Roxygen2> 3.0.0 nhanh hơn đáng kể và không cần bộ nhớ đệm nữa.


Trong phiên bản địa phương của tôi về roxygen, tôi có:

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 

} 

Tôi nghĩ rằng đó là những thay đổi duy nhất bạn cần, nhưng tôi không chắc chắn. Nó tăng tốc độ roxygen theo thứ tự độ lớn.

+0

Rĩa ba của Roxygen có sẵn trên GitHub không? – Sharpie

+1

Chưa - Tôi vẫn tiếp tục hy vọng rằng sự phát triển roxygen sẽ trở lại với cuộc sống. – hadley

+1

Không thể làm tổn thương khi đăng nó bằng trình theo dõi vấn đề bị vô hiệu hóa và tuyên bố từ chối trách nhiệm cho biết bạn không phải là người bảo trì và hướng người dùng đến danh sách gửi thư của Roxygen. Lưu lượng truy cập tăng lên có thể thúc đẩy nỗ lực phát triển. – Sharpie