2016-10-05 18 views
4

大きなデータセットを扱っていて、かなりのサイズのベクトルを割り当てることができない、または十分なメモリがないことを示すエラーが頻繁に発生します。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ソリューションを起動するたびに取り組んでそれを得るためには

+0

ほとんどの場合、コンピュータに物理RAMが不足している可能性があります。解決策は、一般的にRAMを増やすことです。 data.tableを使用していない場合は、それを試してください。それでもメモリが足りなくなった場合、問題は間違いなくコーディングによって解決できないハードウェアの問題です。 – Hugh

+0

私はもっと多くのRAMメモリが必要だと知っていますが、それはかなり高価です。マザーボードがサポートできる最大量に制限されています。だから、私はオプションを提案している:ページファイル(仮想メモリ)を使用するが、Rで動作しないように思われる。他のプログラムはそれを行うことができ、ディスクに透過的にページを張ることさえできる。 – skan

+0

Rはメモリ管理を行います。 OSにメモリを解放しません。代わりに、必要に応じて再利用します。 'gc'を使うことは、神話です(あなたが1つのRインスタンスしか使用しない限り)。 – Roland

答えて

5

は無視され、両方の.Rprofile内に作成された環境変数として、あるいは場合は作成した場合です。

memory.limit(64000)の書き込みも無視されます。

適切な方法は、

invisible(utils::memory.limit(64000)) 

または任意の数のあなたが欲しい.Rprofileファイルに次の行を追加しています。

もちろん、ページファイルを十分に大きくする必要があります。この数値には空きRAMと空きページ・スペースが含まれます。

ページファイルの使用は遅くなりますが、必要なときにのみ使用されます。私が見つけた奇妙な

何かがそれだけであなたが使用する最大メモリを増やしてみましょうが、それはあなたがそれを減少させることができないということです。

+0

ありがとうございます。 – Ahdee

関連する問題