R使用编译器(JIT)显着减慢

时间:2014-04-16 16:39:10

标签: r performance compiler-construction jit

当我使用“编译器”来加速我的代码时,我得到了有趣的结果。我见过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)时,有什么想法为什么它比原始版本进一步减少?

提前感谢您的指导。

0 个答案:

没有答案