当我使用“编译器”来加速我的代码时,我得到了有趣的结果。我见过this post,但我觉得我的问题没有回答。
我有一个函数,它包含几个不同的函数和for循环。本质上它是一个带有glmnet的正则化逻辑回归,但它运行了几次。我们将此函数称为myFunction。
对于我尝试的每种方法,我都会记下几次运行的平均时间:
temp <- NULL
for (i in 1:10) temp <- c(temp,system.time(myFunction())["elapsed"])
mean(temp)
[1] 19.189
enableJIT(1)
temp <- NULL
for (i in 1:10) temp <- c(temp,system.time(myFunction())["elapsed"])
mean(temp)
[1] 38.668
enableJIT(0)
temp <- NULL
for (i in 1:10) temp <- c(temp,system.time(myFunction())["elapsed"])
mean(temp)
[1] 17.790
请注意,我在这里写的每个结果都是10次运行的平均值,并且在每次运行中,时间彼此接近。
Q1)使用enableJIT(1)增加这么多的想法?我预计它会在第一次运行中增加,但即使在下一次运行中,时间也在37-40秒范围内。
Q2)当之后启用enableJIT(0)时,有什么想法为什么它比原始版本进一步减少?
提前感谢您的指导。