大きなデータセットを扱っていて、かなりのサイズのベクトルを割り当てることができない、または十分なメモリがないことを示すエラーが頻繁に発生します。R(およびRstudio)がWindows上で仮想メモリを使用するようにする
マイコンピュータは、16ギガバイトのRAM(Windowsの10)を持って、私は4ギガバイト程度のデータセットで働いているが、いくつかの操作が長いワイドフォーマットからデータセットを変換する例えば、多くのメモリを必要とします。 状況によっては、gc()を使用してメモリを再エアアイズすることはできますが、何度も十分ではありません。
時々私は小さいチャンクにデータセットを破ることができますが、時々私は一度にすべてのテーブルで作業する必要があります。
Linuxユーザーにはこの問題はありませんが、Windowsはどうですか?
私はSSD(200ギガバイト)の大きなページファイルを設定しようとしましたが、私はRがすべてでそれを使用していないことがわかりました。
タスクマネージャが表示され、メモリ消費量が16GBに達するとRが動作を停止します。ページファイルのサイズは違いはありません。
Rにページファイルの使用を強制するにはどうすればよいですか? 特別なフラグを付けてコンパイルする必要はありますか?
PD:私の経験では)((オブジェクトRMを削除)以降GCを使用すると、すべてのメモリを回復しないということです。大規模なデータセットで操作を実行すると、gc()を使用するかどうかにかかわらず、コンピュータはあらゆるステップで空き容量が少なくなります。
PD2:私は「あなたがより多くのRAMメモリーが必要」
PD3ような些細なソリューションを聞いていない期待:私がテストしてきたし、問題はRstudioで起こります。私が直接Rを使うとうまくいく。誰でもRStudioでそれを行う方法を知っていますか?自動的にR_MAX_MEM_SIZEとRStudioソリューションを起動するたびに取り組んでそれを得るためには
ほとんどの場合、コンピュータに物理RAMが不足している可能性があります。解決策は、一般的にRAMを増やすことです。 data.tableを使用していない場合は、それを試してください。それでもメモリが足りなくなった場合、問題は間違いなくコーディングによって解決できないハードウェアの問題です。 – Hugh
私はもっと多くのRAMメモリが必要だと知っていますが、それはかなり高価です。マザーボードがサポートできる最大量に制限されています。だから、私はオプションを提案している:ページファイル(仮想メモリ)を使用するが、Rで動作しないように思われる。他のプログラムはそれを行うことができ、ディスクに透過的にページを張ることさえできる。 – skan
Rはメモリ管理を行います。 OSにメモリを解放しません。代わりに、必要に応じて再利用します。 'gc'を使うことは、神話です(あなたが1つのRインスタンスしか使用しない限り)。 – Roland