Sto eseguendo alcune simulazioni su una macchina con memoria da 16 GB. In primo luogo, ho incontrato alcuni errori:Problema di memoria R con memory.limit()
Error: cannot allocate vector of size 6000.1 Mb (the number might be not accurate)
Poi ho cercato di allocare più memoria al R utilizzando:
memory.limit(1E10)
La ragione della scelta di un numero così grande è perché memory.limit
non mi può consentire di selezionare un numero minore di mio sistema di memoria totale
In memory.size(size) : cannot decrease memory limit: ignored
Dopo aver fatto questo, posso terminare i miei simulazioni, ma R ha preso in giro la memoria 15 GB, che si è fermato il mio dal fare qualsiasi messaggio analy sis.
Ho utilizzato object.size()
per stimare la memoria totale utilizzata di tutta la variabile generata, che ha richiesto solo circa 10 GB. Non riuscivo a capire dove R prendesse il resto del ricordo. Quindi la mia domanda è: come posso allocare ragionevolmente memoria a R senza far esplodere la mia macchina? Grazie!
sei sicuro di aver guardato tutte le variabili esistenti? 'Ls (all = TRUE)' elenca solo quelli che hai generato? Si noti che anche se un oggetto viene eliminato, la memoria utilizzata per memorizzare quell'oggetto non è libera fino a quando non viene chiamato il garbage collector. R lo fa periodicamente, ma puoi forzare la raccolta con 'gc()'. –
Non ho controllato l'utilizzo della memoria per tutta la mia memoria. Ma ho usato gc() nella mia simulazione dopo ogni iterazione ... –
In generale, hai bisogno di circa 3 volte la quantità di memoria occupata dai tuoi oggetti. Questo a causa della copia di oggetti. –