13

これは本当に私の心を吹き飛ばしています。基本的なループは、私のコンピューターでは 8 秒ほどかかります。

system.time({
x <- 0
for (p in 1:2) {
    for (i in 1:500) {
        for (j in 1:5000) {
            x <- x + i * j
        }
    }
}
})
x

非並列モードで使用するforeachと、わずか0.7秒しかかかりません!!!

system.time({
x <- 0
foreach(p = 1:2, .combine = rbind) %do% 
    for (i in 1:500) {
        for (j in 1:5000) {
            x <- x + i * j
        }
    }
})
x

結果は同じですが、foreachどういうわけか基本的な R よりもはるかに速く到達することができました! 基本的な R の非効率性はどこにありますか?

これはどのように可能ですか?

実際、これとはまったく逆の結果が得られました。

4

1 に答える 1