?"Memory-limits" schlägt vor, ulimit zu verwenden oder limit .
Es gibt ein Kommandozeilen-Flag:--max-mem-size die die Initiale setzen kann Grenze. Diese kann vom Benutzer während der Sitzung mit memory.limit erhöht werden .
Da ist unix::rlimit_as() Dies ermöglicht das Festlegen von Speichergrenzen für einen laufenden R-Prozess mit demselben Mechanismus, der auch für ulimit verwendet wird in der Schale. Windows und macOS werden nicht unterstützt.
In meinem .Rprofile Ich habe
unix::rlimit_as(1e12, 1e12)
um die Speichernutzung auf ~12 GB zu begrenzen.
Davor...
Ich hatte ein kleines R-Paket erstellt, ulimit mit ähnlicher Funktionalität.
Installieren Sie es von GitHub mit
devtools::install_github("krlmlr/ulimit")
Um den für R verfügbaren Speicher auf 2000 MiB zu begrenzen, rufen Sie auf:
ulimit::memory_limit(2000)
Jetzt:
> rep(0L, 1e9)
Error: cannot allocate vector of size 3.7 Gb