これも同じく,本家 Rjpwiki の「Rコード最適化のコツと実例集」にあるのだけど。。。みんな~,騙されるんじゃあね~ぞ~!
> 既存変数を再利用(変数の構造・サイズが変わる場合はどうかはわかりません)。環境にやさしい資源リサイクル
>
> > test1 <- function() {x <- runif(1000000); y <- x^2} # 変数 y は無駄
> > system.time(test1())
> [1] 0.62 0.04 0.67 0.00 0.00
> > test2 <- function() {x <- runif(1000000); x <- x^2} # 変数 x を再利用
> > system.time(test2())
> [1] 0.48 0.03 0.50 0.00 0.00
この場合は,そもそも代入する必要がないのだから,以下も含めてベンチマーク・テストしてみよう
test3 <- function() {x <- runif(1000000); x^2}
> library(rbenchmark)
> benchmark(test1(), test2(), test3(), replications=1000)
test replications elapsed relative user.self sys.self user.child sys.child
1 test1() 1000 37.084 1.000000 30.681 6.671 0 0
2 test2() 1000 37.149 1.001753 30.557 6.778 0 0
3 test3() 1000 37.144 1.001618 30.558 6.804 0 0
どれでも同じ。「資源はたくさんある」ので,たかが 1000000 個の要素を持つ numeric 変数を新たに使っても,R にとっては痛くもかゆくもない。
よって,この珍説もガセと認定!!
最新の画像[もっと見る]
- さぬきうどん 山よし 佐文店 11時間前
- さぬきうどん 山よし 佐文店 11時間前
- 算額(その1394) 22時間前
- 算額(その1393) 1日前
- 和算の心(その008) 1日前
- ぶっかけうどん はな庄 1日前
- ぶっかけうどん はな庄 1日前
- 晴屋製麺所 2日前
- 晴屋製麺所 2日前
- 算額(その1391) 3日前
※コメント投稿者のブログIDはブログ作成者のみに通知されます