Je pense que cela devrait être géré par le système d'exploitation. Il n'y a pas de limite intégrée à ma connaissance ; si nécessaire, R utilisera toute la mémoire qu'il peut obtenir.
Pour obtenir des informations sur le total et/ou sur la mémoire disponible sous linux, vous pouvez essayer
system('grep MemTotal /proc/meminfo')
ou
system('free -m')
ou
system('lshw -class memory')
La dernière commande vous demandera de l'exécuter en tant que super-utilisateur et vous avertira que la sortie peut ne pas être exacte ; mais d'après mon expérience, il fournira toujours une sortie assez utile.
Pour obtenir des informations sur l'utilisation de la mémoire d'un script R en cours d'exécution, vous pouvez soit surveiller les ressources actuellement utilisées en démarrant top
dans un terminal séparé, ou utilisez, par exemple, l'appel système suivant depuis le script R :
system(paste0("cat /proc/",Sys.getpid(),"/status | grep VmSize"))
J'espère que cela vous aidera.
Utiliser pryr bibliothèque :
library("pryr")
mem_used()
# 27.9 MB
x <- mem_used()
x
# 27.9 MB
class(x)
# [1] "bytes"
Le résultat est le même que la réponse de @RHertel, avec pryr nous pouvons affecter le résultat dans une variable.
system('grep MemTotal /proc/meminfo')
# MemTotal: 263844272 kB
Pour affecter à une variable avec appel système, utilisez intern = TRUE
:
x <- system('grep MemTotal /proc/meminfo', intern = TRUE)
x
# [1] "MemTotal: 263844272 kB"
class(x)
# [1] "character"