如何加快书本的生成?

时间:2019-06-11 10:09:46

标签: r r-markdown knitr 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输出?

1 个答案:

答案 0 :(得分:1)

通过在我的index.Rmd中添加以下代码段,我设法大大减少了再生时间:

```{r include=FALSE}
knitr::opts_chunk$set(cache = TRUE)
```

更新:

按照Yuriy BarvinchenkoYihui Xie的建议,最好使用cache only time-consuming代码块:

```{go time-sleep-demo cache = TRUE}
package main

import (
    "fmt"
    "time"
)

func main() {
    fmt.Print("Hello ")
    time.Sleep(10 * time.Second)
    fmt.Println("world!")
}
```