Как ускорить генерацию уценок? - PullRequest
1 голос
/ 11 июня 2019

Я сейчас работаю над книгой, используя 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 Ответ

1 голос
/ 11 июня 2019

Мне удалось значительно сократить время регенерации, добавив следующий фрагмент к своему 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!")
}
```
...