2011-01-20 10 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 

} 

मुझे लगता है कि उन लोगों के केवल परिवर्तन की जरूरत है, लेकिन मुझे यकीन है कि नहीं हूँ। यह परिमाण के क्रम से roxygen गति।

+0

क्या गिटहब पर रोक्सीजन का आपका कांटा उपलब्ध है? – Sharpie

+1

अभी तक नहीं - मैं अभी भी आशा करता हूं कि रोक्सीजन विकास वापस आ जाएगा। – hadley

+1

इसे एक अक्षम समस्या ट्रैकर और एक अस्वीकरण के साथ पोस्ट करने में कोई दिक्कत नहीं हो सकती है, जिसमें कहा गया है कि आप रखरखाव नहीं कर रहे हैं और उपयोगकर्ताओं को रोक्सीजन मेलिंग सूची में निर्देशित करते हैं। बढ़ी यातायात विकास के प्रयासों को प्रेरित कर सकता है। – Sharpie

संबंधित मुद्दे