Количественная оценка производительности на основе использования памяти - PullRequest
0 голосов
/ 15 марта 2019

Как количественно оценить эффективность различных функций (или подходов)? Я думаю, что-то вроде 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())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...