块的时间?

2023-11-23

有没有办法报告计算每个块需要多少时间?我正在努力从一些大型脚本创建一个文档,很高兴知道时间花在哪里。我确实使用了缓存功能,所以当然,一旦对象被缓存,处理文档就不会太慢,但我想隔离慢速块,看看如何阻止它们被重新计算,除非绝对需要。

一种想法是,例如将每个块包装在 system.time() 中,并在每个块输出下方或边距中报告 system.time...

再次感谢易辉提供这么优秀的软件。


您可以定义一个块钩子函数来执行此操作。这是一个简单的例子:

```{r setup, include=FALSE}
knitr::knit_hooks$set(timeit = local({
  now = NULL
  function(before, options) {
    if (before) {
      now <<- Sys.time()
    } else {
      res = difftime(Sys.time(), now)
      now <<- NULL
      # use options$label if you want the chunk label as well
      paste('Time for this code chunk:', as.character(res))
    }
  }})
)
```

Test it:

```{r test-a, timeit = TRUE}
Sys.sleep(2)
```

根据您使用的文档格式,您可能需要格式化挂钩返回的字符串。从块钩子返回的字符结果将与原始输出合并,而其他类型的输出将被忽略。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

块的时间? 的相关文章

随机推荐