有没有办法报告计算每个块需要多少时间?我正在努力从一些大型脚本创建一个文档,很高兴知道时间花在哪里。我确实使用了缓存功能,所以当然,一旦对象被缓存,处理文档就不会太慢,但我想隔离慢速块,看看如何阻止它们被重新计算,除非绝对需要。
一种想法是,例如将每个块包装在 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(使用前将#替换为@)