如何量化不同功能(或方法)的性能?我在考虑类似system.time()
或microbenchmark::microbenchmark()
的东西,但是用于内存使用。在此示例中,假设我要比较foo1()
与foo2()
。我尝试修改gc()
,但无法进行比较。
set.seed(42)
x = sample(1:100000)
y = sample(1:100000)
foo1 = function(){
S = x + y
return(tail(which(S == max(S)), 1))
}
foo2 = function(){
S = x[1] + y[1]
i = 1
for (ind in 2:length(x)){
if ((x[ind] + y[ind]) > S){
S = x[ind] + y[ind]
i = ind
}
}
return(i)
}
identical(foo1(), foo2())