Penso che questo dovrebbe essere gestito dal sistema operativo. Non esiste un limite integrato che io sappia; se necessario, R utilizzerà tutta la memoria che può ottenere.
Per ottenere informazioni sulla memoria totale e/o sulla memoria disponibile in Linux, puoi provare
system('grep MemTotal /proc/meminfo')
o
system('free -m')
o
system('lshw -class memory')
L'ultimo comando si lamenterà che dovresti eseguirlo come superutente e ti avvertirà che l'output potrebbe non essere accurato; ma dalla mia esperienza fornirà comunque un output abbastanza utile.
Per ottenere informazioni sull'utilizzo della memoria di uno script R in esecuzione, è possibile monitorare le risorse attualmente utilizzate avviando top
in un terminale separato oppure utilizzare, ad esempio, la seguente chiamata di sistema dall'interno dello script R:
system(paste0("cat /proc/",Sys.getpid(),"/status | grep VmSize"))
Spero che questo aiuti.
Usando pryr libreria:
library("pryr")
mem_used()
# 27.9 MB
x <- mem_used()
x
# 27.9 MB
class(x)
# [1] "bytes"
Il risultato è lo stesso della risposta di @RHertel, con pryr possiamo assegnare il risultato in una variabile.
system('grep MemTotal /proc/meminfo')
# MemTotal: 263844272 kB
Per assegnare a una variabile con una chiamata di sistema, usa intern = TRUE
:
x <- system('grep MemTotal /proc/meminfo', intern = TRUE)
x
# [1] "MemTotal: 263844272 kB"
class(x)
# [1] "character"