R 如何加快bookdown生成?

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_

我目前正在使用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_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代码片段不会有什么害处。