我有一组在包装器中运行的功能:
wrapper_func <- function(x,y,z,.....) {
t <- foo1(x,y)
kuku <- foo2(t,z)
....
final_res <- foo20(t, kuku, ...)
return(final_res)
}
运行缓慢,我想了解谁是瓶颈/麻烦制造者。 请告知哪个函数可以执行更深入的分析(基准?微基准??),以显示向下钻取-哪个行/函数花费最多的时间/资源?
我发现了另一个option
并转到使用lineprof进行内存分析一章。
你怎么看?
答案 0 :(得分:3)
您可以使用Rprof
来配置R代码并查找性能瓶颈。这是一个简短的例子
tmp <- tempfile()
Rprof(tmp)
example(glm)
Rprof()
summaryRprof(tmp)
可以在this R-bloggers article上找到更详细的描述。
答案 1 :(得分:1)
您可以打印microbenchmark
的结果以查看您的性能瓶颈:
library(microbenchmark)
wrapper_func <- function(x,y,z,.....) {
t <- foo1(x,y)
print(microbenchmark(foo1(x,y)))
kuku <- foo2(t,z)
print(microbenchmark(foo2(t,z)))
....
final_res <- foo20(t, kuku, ...)
print(microbenchmark(foo20(t, kuku, ...)))
return(final_res)
}