Ich denke, dass dies vom Betriebssystem gehandhabt werden sollte. Mir ist kein eingebautes Limit bekannt; Falls erforderlich, verwendet R den gesamten Speicher, den es bekommen kann.
Um Informationen über den Gesamtspeicher und/oder den verfügbaren Speicher unter Linux zu erhalten, können Sie versuchen
system('grep MemTotal /proc/meminfo')
oder
system('free -m')
oder
system('lshw -class memory')
Der letzte Befehl wird sich darüber beschweren, dass Sie dies als Superuser ausführen sollten, und es wird eine Warnung geben, dass die Ausgabe möglicherweise nicht korrekt ist. aber nach meiner Erfahrung wird es immer noch eine ziemlich nützliche Ausgabe liefern.
Um Informationen über den Speicherverbrauch eines laufenden R-Skripts zu erhalten, könnte man entweder die aktuell verwendeten Ressourcen überwachen, indem man top
startet in einem separaten Terminal oder verwenden Sie z. B. den folgenden Systemaufruf aus dem R-Skript heraus:
system(paste0("cat /proc/",Sys.getpid(),"/status | grep VmSize"))
Hoffe das hilft.
Verwenden von pryr Bibliothek:
library("pryr")
mem_used()
# 27.9 MB
x <- mem_used()
x
# 27.9 MB
class(x)
# [1] "bytes"
Das Ergebnis ist dasselbe wie die Antwort von @RHertel, mit pryr wir können das Ergebnis einer Variablen zuweisen.
system('grep MemTotal /proc/meminfo')
# MemTotal: 263844272 kB
Um eine Variable mit Systemaufruf zuzuweisen, verwenden Sie intern = TRUE
:
x <- system('grep MemTotal /proc/meminfo', intern = TRUE)
x
# [1] "MemTotal: 263844272 kB"
class(x)
# [1] "character"