Dre*_*een 2 performance profiling r
我正在编写一个相对复杂的函数来进行从头到尾的数据分析.这个函数调用了我编写的许多子函数(它们本身称为子子函数等).我正在寻找一种工具来告诉我我的功能在每个子功能和子功能上花了多少时间,以便了解我应该在哪里寻找性能改进.与MATLAB的分析器类似的东西会很好.
例如,一个假设的功能audit:
#fun1 is called by fun2
fun1 <- function() {
rnorm(100000)
}
fun2 <- function(x) {
y <- x+1
z <- y*fun1()
}
mainFun <- function() {
z+3
}
audit(mainFun())
> mainFun = 1 s; of which 95% is in fun1 and 98% is fun2
Run Code Online (Sandbox Code Playgroud)
显然,我可以使用microbenchmark()或system.time()用于每个单独的功能 - 但随着mainFun变得更加复杂,使用它有效变得棘手.是否有现成的工具?