?"Memory-limits"
suggère d'utiliser ulimit
ou limit
.
Il y a un indicateur de ligne de commande :--max-mem-size
qui peut définir l'initiale limite. Cela peut être augmenté par l'utilisateur pendant la session en utilisant memory.limit
.
Il y a unix::rlimit_as()
qui permet de définir des limites de mémoire pour un processus R en cours d'exécution en utilisant le même mécanisme qui est également utilisé pour ulimit
dans la coquille. Windows et macOS ne sont pas pris en charge.
Dans mon .Rprofile
j'ai
unix::rlimit_as(1e12, 1e12)
pour limiter l'utilisation de la mémoire à environ 12 Go.
Avant ça...
J'avais créé un petit paquet R, ulimit
avec des fonctionnalités similaires.
Installez-le depuis GitHub en utilisant
devtools::install_github("krlmlr/ulimit")
Pour limiter la mémoire disponible pour R à 2 000 Mio, appelez :
ulimit::memory_limit(2000)
Maintenant :
> rep(0L, 1e9)
Error: cannot allocate vector of size 3.7 Gb