R 如何加快bookdown生成?
我目前正在使用bookdown编写一本书。它使用一些代码片段,这些代码片段需要时间来编译、执行和获得输出。我使用以下命令为本书构建HTML、PDF和EPUB文件:R 如何加快bookdown生成?,r,r-markdown,knitr,bookdown,R,R Markdown,Knitr,Bookdown,我目前正在使用bookdown编写一本书。它使用一些代码片段,这些代码片段需要时间来编译、执行和获得输出。我使用以下命令为本书构建HTML、PDF和EPUB文件: Rscript -e "bookdown::render_book('index.Rmd', 'bookdown::gitbook')" Rscript -e "bookdown::render_book('index.Rmd', 'bookdown::pdf_book')" Rscript -e "bookdown::render_
Rscript -e "bookdown::render_book('index.Rmd', 'bookdown::gitbook')"
Rscript -e "bookdown::render_book('index.Rmd', 'bookdown::pdf_book')"
Rscript -e "bookdown::render_book('index.Rmd', 'bookdown::epub_book')"
因此,每次生成图书文件时,实际计算都会增加总生成时间×3
有没有办法在第一次运行时生成一些中间文件,然后使用它来生成HTML、PDF和EPUB输出?我通过将以下代码片段添加到我的
index.Rmd
中,成功地缩短了重新生成时间:
```{r include=FALSE}
knitr::opts_chunk$set(cache = TRUE)
```
更新:
正如和两者所建议的,最好编写块:
```{go time-sleep-demo cache = TRUE}
package main
import (
"fmt"
"time"
)
func main() {
fmt.Print("Hello ")
time.Sleep(10 * time.Second)
fmt.Println("world!")
}
```
你试过在区块选项中缓存(即,
cache=TRUE
)吗?正如bookdown书中提到的:@YihuiXie,是的,那本书很棒!非常感谢。我建议您只缓存那些耗时的代码块,而不是所有的代码块,因为缓存中没有免费的午餐,例如@YihuiXie,谢谢您的澄清。我的“书”实际上是Go编程语言的学习课程内容,所以我相信缓存所有这些“Hello,world!”、Fibonacci和(特别是)time.Sleep代码片段不会有什么害处。