メモリ使用量をどのように確認しますか? 通常、仮想マシンは、データを格納するために使用するメモリのチャンクを割り当てます。割り当てられたものの一部は未使用であり、空きとしてマークされている場合があります。GC が行うことは、どこからも参照されていないデータを検出し、対応するメモリのチャンクを未使用としてマークすることです。これは、このメモリが OS に解放されることを意味しません。それでも VM の観点から見ると、さらなる計算に使用できる空きメモリが増えています。
他の人が尋ねたように、メモリ不足エラーが発生しましたか? そうでない場合は、何も心配する必要はありません。
編集:
これとこれは、R でメモリ割り当てとガベージ コレクションがどのように機能するかを理解するのに十分なはずです。
最初のドキュメントから:
未使用のページを解放してオペレーティング システムに戻そうとする場合があります。ページが解放されると、各クラスに割り当てられたノードの数に R_MaxKeepFrac を掛けた数の空きノードが保持されます。この要件を満たす必要のないページは解放されます。ページの解放は、R_PageReleaseFreq レベル 1 またはレベル 2 コレクションごとに試行されます。
EDIT2:
使用メモリを確認するには、verbose を TRUE に設定して gc() を実行してみてください。
gc(verbose=T)
メモリ内の 10'000'000 整数の配列の結果を次に示します。
Garbage collection 9 = 1+0+8 (level 2) ...
10.7 Mbytes of cons cells used (49%)
40.6 Mbytes of vectors used (72%)
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 198838 10.7 407500 21.8 350000 18.7
Vcells 5311050 40.6 7421749 56.7 5311504 40.6
そして、それへの参照を破棄した後は次のとおりです。
Garbage collection 10 = 1+0+9 (level 2) ...
10.7 Mbytes of cons cells used (49%)
2.4 Mbytes of vectors used (5%)
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 198821 10.7 407500 21.8 350000 18.7
Vcells 310987 2.4 5937399 45.3 5311504 40.6
ご覧のとおり、Vcells が使用するメモリは 40.6Mb から 2.4Mb に減少しました。