Подтвердить что ты не робот

Очистить память, выделенную сеансом 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? (Я не хочу перезагружать компьютер)

4b9b3361

Ответ 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))