Я пытался найти вычислительные затраты с помощью Sys.time (), начиная с нескольких простых операций.
Я начал с чего-то подобного
a=c(10,6,8,3,2,7,9,11,13)
t_beginning=Sys.time()
cl2=NULL
indx=which(a==7)
t_ending=Sys.time()
print(t_ending-t_beginning)
и это дает мне около 0,0023 сек после запуска кода в Rstudio.
Затем код помещается в цикл for для определения среднего расхода двух строк.
sum=0
a=c(10,6,8,3,2,7,9,11,13)
for (i in 1:5) {
print(i)
t_beginning=Sys.time()
cl2=NULL
indx=which(a==7)
t_ending=Sys.time()
sum=t_ending-t_beginning+sum
print(t_ending-t_beginning)
}
sum/5
Оказывается, что для каждой итерации в цикле for потребление времени составляет всего несколько миллисекунд, что намного меньше, чем это было в цикле for.
[1] 1
Time difference of 7.152557e-06 secs
[1] 2
Time difference of 5.00679e-06 secs
[1] 3
Time difference of 4.053116e-06 secs
[1] 4
Time difference of 4.053116e-06 secs
[1] 5
Time difference of 5.00679e-06 secs
Я ожидаю, что средняя стоимость времени цикла for будет примерно такой же, как и без цикла, но они настолько разные. Не уверен, почему это происходит. Кто-нибудь может воспроизвести то же самое? Спасибо!