餡子付゛録゛

ソフトウェア開発ツールの便利な使い方を紹介。

配列の拡張とパフォーマンス

動的に配列サイズが変更されるほど、パフォーマンスは劣化します。

num = 50000

### 配列を拡張していく ###
gc(); gc()
system.time({
  x <- numeric(0)
  i <- 1
  while(i <= num){
    x[i] <- i
    i <- i + 1
  }
})

### 配列を一度に初期化 ###
gc(); gc()
system.time({
  x <- numeric(num)
  i <- 1
  while(i <= num){
    x[i] <- i
    i <- i + 1
  }
})