Как очистить R память без необходимости перезапуска R сессии - PullRequest
0 голосов
/ 16 ноября 2018

Я знаю, что есть много похожих вопросов с принятым ответом ( здесь , здесь или даже это ), но пока нигде не нашел четкого ответао том, как освободить место в памяти без перезапуска сеанса R.

Я знаю, что можно сохранить его рабочее пространство, перезапустить R и загрузить рабочее пространство, но:

  1. Я не уверен, но при этом вам придется загрузить все библиотекиверно?
  2. Если ваше рабочее пространство огромно, это может занять некоторое время, и если я делаю это довольно часто, я не хочу терять время каждый раз, когда делаю это.
  3. ЕслиЯ удаляю большой объект, разве это не просто нормальное поведение для освобождения памяти, которую занимал этот объект?

Похоже, это не так.Даже после удаления половины самых больших объектов из моего рабочего пространства (благодаря этот замечательный ответ ) и после запуска gc(), top все равно дает мне точно такой же% используемой памяти.

Здесь в комментарии говорится:

Сборщик мусора R "помечает" RAM как доступный.Вплоть до вашей ОС, чтобы исправить, что

Звучит нормально, но не уверен, что это действительно произойдет.top все еще показывает мне тот же объем памяти, который используется R даже после rm() и gc(), и даже после запуска нового процесса в ОС, и даже через 2 часа, 10 часов или 3 дня.

Этот комментарий предполагает, что он должен видеть загруженные библиотеки и графические устройства, но почему?и как я могу это решить?

Если я rm() a 3GB возражаю, а затем использую gc(), чтобы освободить память, как возможно, что R все еще использует тот же процент памяти?

...