?"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