web-dev-qa-db-fra.com

Augmenter (ou diminuer) la mémoire disponible pour les processus R

J'aimerais augmenter (ou diminuer) la quantité de mémoire disponible pour R. Quelles sont les méthodes pour y parvenir?

115
medriscoll

De:

http://gking.harvard.edu/zelig/docs/How_do_I2.html ( miroir )

Les utilisateurs Windows peuvent avoir l’erreur que R manque de mémoire.

Si R est déjà installé et que vous installez par la suite plus de RAM, vous devrez peut-être réinstaller R afin de tirer parti de la capacité supplémentaire.

Vous pouvez également définir manuellement la quantité de mémoire disponible. Fermez R, puis faites un clic droit sur l’icône de votre programme R (l’icône sur votre bureau ou dans le répertoire de vos programmes). Sélectionnez "Propriétés", puis sélectionnez l'onglet "Raccourci". Recherchez le champ `` Target '' et après les guillemets de fermeture autour de l'emplacement de l'exécutable R, ajoutez

--max-mem-size = 500M

comme indiqué dans la figure ci-dessous. Vous pouvez augmenter cette valeur jusqu'à 2 Go ou la quantité maximale de mémoire physique RAM que vous avez installée.

Si vous obtenez l'erreur que R ne peut pas allouer un vecteur de longueur x, fermez-le et ajoutez la ligne suivante au champ `` Target '':

--max-vsize = 500M

ou selon le cas. Vous pouvez toujours vérifier la quantité de mémoire disponible pour R en tapant à l'invite R

memory.limit()

qui vous donne la quantité de mémoire disponible en Mo. Dans les versions précédentes de R, vous deviez utiliser: round(memory.limit()/2^20, 2).

64
BobbyShaftoe

Utilisez memory.limit(). Vous pouvez augmenter la valeur par défaut à l'aide de cette commande, memory.limit(size=2500), où la taille est exprimée en Mo. Vous devez utiliser 64 bits pour en tirer le meilleur parti.

Une autre suggestion consiste à utiliser autant que possible des objets économes en mémoire: utilisez par exemple une matrice plutôt qu'un data.frame.

45
Shane
  1. Acheter plus de bélier
  2. Basculez vers un système d'exploitation 64 bits. Combinez avec le point 1.
7
Dirk Eddelbuettel

Microsoft Windows accepte toute demande de mémoire provenant de processus si cela pouvait être fait.

Il n'y a aucune limite pour la mémoire pouvant être fournie à un processus, à l'exception de la taille de la mémoire virtuelle.

La taille de la mémoire virtuelle est de 4 Go dans les systèmes 32 bits pour tous les processus, quel que soit le nombre d'applications que vous exécutez. Tous les processus peuvent allouer jusqu'à 4 Go de mémoire dans les systèmes 32 bits.

En pratique, Windows alloue automatiquement certaines parties de la mémoire allouée à partir de RAM ou fichier-page en fonction des demandes de processus et du mécanisme de fichier d'échange).

Mais une autre limite est la taille du fichier de pagination. Si vous avez un petit fichier de pagination, vous ne pouvez pas allouer de grandes mémoires. Vous pouvez augmenter la taille du fichier d'échange en fonction de Microsoft pour disposer de plus d'espace mémoire.

7
Isaac