Очистить память, выделенную сеансом R (gc() не помогает!)
Я занимаюсь машинным обучением в больших масштабах, но после того, как мой расчет становится настолько медленным из-за использования памяти R.
Я очистил свои объекты, а также попробовал gc()
и результат:
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
Мой диспетчер задач показывает, что сеанс R все еще распределен по 3 ГБ моей памяти, а мой компьютер все еще медленный.
Как я могу освободить память, взятую R? (Я не хочу перезагружать компьютер)
Ответы
Ответ 1
Лучшее решение, которое я нашел, перезапускает сеанс R.
в студии R ctr+shft+f10
и если вы не хотите сохранять рабочее пространство
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
приветствий.
Ответ 2
вам нужно выполнить два шага.
Сначала запустите rm(list = ls())
Однако, хотя он удаляет все объекты в ls(), вам необходимо перезапустить R
используя .rs.restartR()
Это полностью очистит память.
Ответ 3
Как и в этом ответе - fooobar.com/info/146771/... - "gc не удаляет какие-либо переменные, которые вы все еще используете, он освобождает память только для тех, дольше иметь доступ к".
Вы можете удалить (почти) все в рабочей среде с помощью функции rm:
rm(list = ls())
Обратите внимание, что если вы хотите удалить скрытые объекты, вам нужно использовать
rm(list = ls(all.names = TRUE))