12

私のマシン(Windows 7 Pro 64ビット)には6 GBのメモリがあり、Rでは

> memory.limit()
6141

もちろん、ビッグデータを扱う場合はメモリ割り当てエラーが発生します。したがって、R で仮想メモリを使用するには、次を使用します。

> memory.limit(50000)

これで、スクリプトを実行してもメモリ割り当てエラーは発生しなくなりましたが、R がコンピュータのすべてのメモリを占有するため、スクリプトが終了するまでマシンを使用できません。Rにマシンのメモリを管理させるより良い方法があるのだろうか。ユーザーが指定した以上の物理メモリを使用している場合、仮想メモリを使用することができると思います。そのようなオプションはありますか?

4

3 に答える 3

5

R はマシンのメモリを管理しません。それはオペレーティングシステムの責任です。memory.sizeWindows にandが存在する唯一の理由memory.limitは、(からhelp("Memory-limits")):

 Under Windows, R imposes limits on the total memory allocation
 available to a single session as the OS provides no way to do so:
 see 'memory.size' and 'memory.limit'.

R オブジェクトも RAM 内の連続したスペースを占有する必要があるため、いくつかの大きなオブジェクトだけでメモリ割り当ての問題が発生する可能性があります。おそらく、作成するオブジェクトの数/サイズにもっと注意を払い、大量のメモリを使用しないようにすることができます。

于 2013-04-05T17:56:48.130 に答える