web-dev-qa-db-fra.com

effacer la mémoire allouée par la session R (gc () n’aide pas!)

Je fais l'apprentissage de la machine à grande échelle, mais peu à peu, mon ordinateur devient si lent à cause de la mémoire occupée.
J'ai nettoyé mes objets et j'ai aussi essayé gc() et le résultat:

           used  (Mb) gc trigger   (Mb)  max used   (Mb)
Ncells  4460452 231.5   15288838 1116.6  36599071 1954.7
Vcells 29572776 349.4  324509788 2712.9 350796378 3376.4

Mon gestionnaire de tâches indique que la session R occupe encore 3 Go de mémoire et que mon ordinateur est toujours lent.
Comment puis-je libérer la mémoire prise par R? (Je ne veux pas redémarrer le PC)

16
Cina

la meilleure solution que j'ai trouvée est de redémarrer R session . in R studio ctr+shft+f10

et si vous ne voulez pas sauvegarder votre espace de travail

makeActiveBinding("refresh", function() { system(paste0(R.home(),"/bin/i386/R")); q("no") }, .GlobalEnv)

paste0(R.home(),"/bin/i386/R --no-save") #--save will save workspace

à votre santé.

12
Cina

vous devez suivre deux étapes. Tout d’abord, lancez rm(list = ls()) Cependant, même si vous supprimez tous les objets dans ls (), vous devez redémarrer R En utilisant .rs.restartR().

Cela effacera complètement la mémoire.

4
Prabhu Shankar

Comme dans cette réponse - https://stackoverflow.com/a/8813862/2602477 - "gc ne supprime pas les variables que vous utilisez encore - il ne libère la mémoire que pour celles auxquelles vous n'avez plus accès. à". 

Vous pouvez supprimer (presque) tout dans l’environnement de travail en utilisant la fonction rm:

rm(list = ls())

Notez que si vous souhaitez également supprimer les objets masqués, vous devez utiliser 

rm(list = ls(all.names = TRUE))
0
Jot eN