裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

最適化なんかしなくてよい その4

2012年05月18日 | ブログラミング

これも同じく,本家 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 にとっては痛くもかゆくもない

よって,この珍説ガセと認定!!

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 最適化なんかしなくてよい その3 | トップ | 最適化なんかしなくてよい その5 »
最新の画像もっと見る

コメントを投稿

ブログラミング」カテゴリの最新記事