次の動作を見つけました。次の多次元配列を作成するとします。
spam = array(runif(96*48*60*360), dim = c(96,48,60,360))
R がこれに使用するメモリの量はかなり予測可能です。つまり、(96*48*60*360) * 4 バイト = 759.4 M バイトです。lsos
これは、関数を使用してうまく確認できます (この投稿を参照):
> lsos()
Type Size PrettySize Rows Columns
spam array 796262520 759.4 Mb 96 48
lsos function 776 776 bytes NA NA
ただし、プロセスとしての R はより多くのメモリを使用し、約 2 倍のサイズになります。
$ top | grep rsession
82:17628 hiemstra 20 0 1614m **1.5g** 8996 S 0.3 40.4 0:04.85 rsession
なぜRはこれを行うのですか?Rがより迅速にアクセスできるようにするために、余分な予約メモリが割り当てられていると思いますか?何かご意見は?