Ns

エラー:ベクターメモリが使い果たされました(制限に達しましたか?)R 3.5.0 macOS



Error Vector Memory Exhausted Limit Reached



解決:

Rstudioを使用している人のために、私はその設定を見つけましたSys.setenv( 'R_MAX_VSIZE' = 32000000000)はコマンドラインでのみ機能し、Rstudioの使用中にそのパラメーターを設定してもこのエラーは防止されません。

エラー:ベクトルメモリが使い果たされました(制限に達しましたか?)



さらに読んだ後、Rstudioの問題を明らかにし、以下に示す解決策を特定するこのスレッドを見つけました。

ステップ1:ターミナルを開き、



ステップ2:

cd〜touch .Renviron open .Renviron

ステップ3:以下をの最初の行として保存します.Renviron:

R_MAX_VSIZE = 100Gb

注:この制限には、物理​​メモリと仮想メモリの両方が含まれます。したがって、16Gbの物理メモリを搭載したマシンで_MAX_VSIZE = 16Gbを設定しても、このエラーを防ぐことはできません。マシンの仕様によっては、このパラメーターを試してみる必要がある場合があります




R 3.5には、メモリ割り当てに関する新しいシステム制限があります。リリースノートから:

環境変数R_MAX_VSIZEを使用して、最大ベクトルヒープサイズを指定できるようになりました。 macOSでは、この環境変数で指定されていない限り、最大ベクトルヒープサイズは最大16GBと使用可能な物理メモリに設定されます。これは、macOSがメモリをオーバーコミットしたときにRプロセスが強制終了されないようにするためです。

これを上書きできます。プロセスを全体的に割り当てて強制終了するリスクがありますが、R 3.4.4または以前使用していたものでハードウォールにぶつかった場合は、おそらくそれが起こっていたのでしょう。

ターミナルで以下を実行して、一時的な環境変数を作成します値32GBのR_MAX_VSIZE(適切に変更):エクスポートR_MAX_VSIZE = 32000000000

または、ターミナルを開いてRセッションを開始するたびにそれを実行したくない場合は、bashプロファイルに同じ行を追加できます。ターミナルを開き、bashプロファイルを見つけます.bash_profileを開き、テキストエディタで上から行を追加します。

ターミナルを開いて、そこからRを開始する必要があります。実行するだけでターミナルでRを実行できますRまたはGUIを開くことができます-n / Applications / R.appを開きます。

Rセッションでこの変更を行うには、Sys.setenv( 'R_MAX_VSIZE' = 32000000000)および値を確認するにはSys.getenv( 'R_MAX_VSIZE')


コマンドラインに慣れていない可能性のある人のための解決策はここにあります:

要するに、解決策は使用することですパッケージを使用します。

usethis :: edit_r_e​​nviron()は、ホームディレクトリにある.Renvironを開きます。この.RenvironはすべてのRstudioの作業に影響します

usethis :: edit_r_e​​nviron( 'project')は、プロジェクトに対してローカルの.Renvironを開きます。このファイルに加えられた変更は、その特定のRstudioプロジェクトで行われた作業にのみ影響します。

開くと、R_MAX_VSIZE変数を設定できます。

リンク先のページは、Rの起動プロセスを詳細に説明しているこのブログにもリンクしています。