2011-08-29 42 views
3

R CMD檢查需要大量的時間來完成我的一個包,因爲有很多示例/測試運行。也許有一種方法可以並行運行?Can R CMD可以並行運行示例/測試(在Windows上)嗎?

我偶然發現了這個帖子,這似乎具有對R CMD解決在Linux上安裝(我看不出它是如何工作在Windows上): http://r.789695.n4.nabble.com/parallel-build-for-package-equivalent-of-make-j8-td921920.html

是否有並行[R CMD測試解決方案在Windows上?

+0

該帖子中的解決方案不是Linux特有的;但它只適用於包含已編譯代碼的包(C,C++,Fortran)。 –

+0

感謝您的澄清! – SFun28

回答

3

這是一個黑客,但你可以參加考試了tests目錄,並將其放在別的地方,他們將不會被自動運行(如inst/tests),然後用你自己的,並行化,框架(如make奔跑並行:http://dannythorpe.com/2008/03/06/parallel-make-in-win32/可能是相關的)來運行測試......但這對示例沒有幫助。

+0

Ben - 我的測試目前生活在inst/tests中,所以請在那裏查看。您的建議是建立R版本並行運行R的版本嗎?我希望這樣的版本存在,或者有一種方法可以調用R CMD檢查並告訴它並行運行測試。 – SFun28

+0

我認爲'R CMD CHECK'只會自動測試'tests'(不是'inst/tests')中的代碼, ,但也許我錯了,在任何情況下,我認爲上述問題的答案是「否」...如果我真的**絕望的話,我會看看'tools :::。check_packages'並看看是否有一種簡單的方法來破解它使用'multicore'包... –

+0

我在測試中有一個文件調用函數testthat :: test_package,它依次運行inst/tests中的測試=)這是使用testthat的最佳實踐指南。我認爲黑客超出了我的技能水平。感謝您確認沒有開箱即用的解決方案。 – SFun28

0

完全不同的方法是使用cacheSweave軟件包,該軟件包從運行即運行緩存代碼中不變的部分。如果你正在調整一些代碼,但大部分代碼沒有改變,這可以節省很多時間。如果情節是減慢速度的東西,cacheSweave不會有太大幫助(如小插曲中所解釋的那樣)。

+0

好吧,評論我自己的帖子我想我應該添加我不確定cacheSweave適用於R CMD檢查,但它確實適用於清理其他文檔。我相信有人會澄清這一點。 –

+0

布賴恩 - 我根本不使用sweave ......我的問題是純粹計算的R例子/測試 – SFun28

+0

明白了。我正在考慮R CMD檢查工作,但您只是擔心幫助頁面示例中的代碼。對不起,我對此沒有任何想法:-( –

相關問題