Rプロセスで使用可能なメモリを増やす(または減らす)


回答:


64

から:

http://gking.harvard.edu/zelig/docs/How_do_I2.htmlミラー

Windowsユーザーは、Rがメモリ不足になったというエラーを受け取る場合があります。

Rを既にインストールしていて、その後さらにRAMをインストールする場合、追加の容量を利用するためにRを再インストールする必要がある場合があります。

手動で利用可能なメモリの量を設定することもできます。Rを閉じて、Rプログラムアイコン(デスクトップまたはプログラムディレクトリのアイコン)を右クリックします。「プロパティ」を選択し、次に「ショートカット」タブを選択します。「Target」フィールドを探し、R実行可能ファイルの場所を囲む引用符の後に、次を追加します

--max-mem-size = 500M

下の図に示すように。この値を2GBまたはインストールした物理RAMの最大量まで増やすことができます。

Rが長さxのベクトルを割り当てることができないというエラーが発生した場合は、Rを閉じて、次の行を「ターゲット」フィールドに追加します:

--max-vsize = 500M

または必要に応じて。Rプロンプトで次のように入力すると、Rが使用できるメモリの量をいつでも確認できます

memory.limit()

これにより、使用可能なメモリ量がMBで表示されます。以前のバージョンのRでは、以下を使用する必要がありましたround(memory.limit()/2^20, 2)


7
32ビットWindowsでは、Rは、インストールされている量に関係なく、最大3 GBのRAMしか使用できないことに注意してください。64ビットWindows上で動作し、すべての利用可能なRAMを使用することができ革命コンピューティング、から入手できるWindows用のRの64ビットバージョンがあります:revolution-computing.com/products/revolution-enterprise.php
デヴィッド・スミス

6
ただ2つのメモ:(i)memory.limit()はWindowsでのみ機能し、(ii)正しい答えを返すコマンドはround(memory.limit()、2)です-少なくとも私のバージョンのR( 2.8.1)。
medriscoll 2009

31
Linuxで動作するmemory.limit()と同様の情報を取得する方法について何か提案はありますか?
EXL

5
ウェブページはもう存在しません。画像なしでこれをフォローするのは難しいです。たとえば、[ショートカット]タブが表示されません。また、これを使用して最大メモリを減らすことはできますか?
blakeoft 2015年

6
では、Macユーザーはどうですか?それについて何かできますか?
Alfredo Lozano

51

を使用しmemory.limit()ます。このコマンドを使用してデフォルトを増やすことができますmemory.limit(size=2500)。サイズはMBです。これを実際に利用するには、64ビットを使用する必要があります。

もう1つの提案は、可能な限りメモリ効率の高いオブジェクトを使用することです。たとえば、data.frameの代わりに行列を使用します。


3
これがどのように機能するのか私にはよくわかりません。私はこのメモリ制限の問題に遭遇し、「8182Mbの合計割り当てに達しました」というエラーを受け取りました。64ビットと8 GBのRAMを使用しているので、SOLのようです。ただし、シグルの場合は、memory.limit(size = 50000)...を設定しました。しかし、なぜ???
森林生態学者

2
私はこれが7歳であることを知っていますが、Rが使用できるRAMの量を減らしようとしていますが、値を減らそうとするたびに、このメッセージが表示されます(64ビットWindowsマシンに12GB RAMがあります)。 。警告メッセージ:in memory.limit(4095):メモリ制限を減らすことはできません:無視されます
hellter

7

Microsoft Windowsは、可能であれば、プロセスからのメモリ要求をすべて受け入れます。

仮想メモリサイズを除き、プロセスに提供できるメモリに制限はありません。

実行しているアプリケーションの数に関係なく、すべてのプロセスで32ビットシステムの仮想メモリサイズは4GBです。32ビットシステムでは、どのプロセスでも最大4 GBのメモリを割り当てることができます。

実際には、Windowsはプロセス要求とページングファイルメカニズムに応じて、割り当てられたメモリの一部をRAMまたはページファイルから自動的に割り当てます。

ただし、別の制限はページングファイルのサイズです。ページングファイルが小さい場合、大きなメモリを割り当てることはできません。Microsoftによると、ページングファイルのサイズを増やして、より多くのメモリ領域を確保できます。


5
  1. 追加のRAMを購入
  2. 64ビットOSに切り替えます。ポイント1と組み合わせる。

23
追加のRAMを購入する(および他のOSに切り替える)ことは、一般的に適切なソリューションではありません。
om-nom-nom 2012

17
確かに、当面の問題に適した小さな問題に取り組むのと同じです。通常、解決策を望んでも解決策はありません。
Dirk Eddelbuettel 2012

2

Rに割り当てられるメモリの量を増やすには、memory.limitを使用できます

memory.limit(size = ...)

または

memory.size(max = ...)

議論について

  • サイズ -数値。NAがメモリ制限を報告する場合、それ以外の場合はMbで新しい制限を要求します。32ビットRビルドでは、最大4095の値のみが許可されますが、「詳細」を参照してください。
  • 最大 -論理。TRUEの場合、OSから取得したメモリの最大量が報告され、FALSEの場合、現在使用中の量、NAの場合はメモリ制限。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.