Как установить лимит памяти в RStudio (настольная версия)?

Я знаю, что здесь уже был подобный вопрос, но ответ устарел. Информация, которую я нашел в Интернете, относится к серверу RStudio, а не к рабочему столу.

У меня ограниченные ресурсы на моем компьютере с Windows 7 x64. Я установил переменную окружения R_MAX_MEM_SIZE, и это принимается RGui (как видно при вводе memory_limit()). Однако RStudio (версия 0.98.507) игнорирует этот параметр и по-прежнему использует всю память моего компьютера, что иногда приводит к сбоям всей системы. Как я могу ограничить объем памяти, используемой R при запуске его в RStudio Desktop?

4 ответа

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

Если memory_limit() не позволяет вам ограничивать память в Windows:

  • Убедитесь, что ваша версия Windows совпадает с вашей версией R (не Rstudio). То есть, если у вас Windows x64bits, убедитесь, что Rstudio работает на R x64bits. Это можно сделать с помощью Sys.getenv("R_ARCH"),
  • Очистите окружающую среду с rm(list=ls()) избавиться от ранее сохраненных наборов данных и функций.
  • Закрыть Rstudio и R. Press WINDOWS + R, это открывает Run окно. Написать cmd и нажмите enter, Перейдите в этот каталог C:\Program Files\RStudio\bin then start rstudio.exe с помощью cd, Возможно, вам придется изменить это в зависимости от того, где находится папка RStudio на вашем компьютере. Затем написать --max-mem-size=4GB и нажмите ввод. Вам нужно будет повторять это каждый раз, когда вы хотите начать сеанс R. Это может не работать на каждом компьютере.
  • Большинство компьютеров могут обрабатывать больше памяти, чем было установлено ранее. Проверьте, какой максимальный объем памяти может обрабатывать ваш компьютер, и подумайте о покупке дополнительной физической памяти.
  • Нажмите Ctrl+Alt+Del и выберите диспетчер задач. Под ProcessesПроверьте, какая программа использует значительные объемы памяти и можете ли вы благополучно завершить их. Пользователи Windows склонны накапливать ненужные программы.

Это работает для моего ПК:

 # Check memory limit
   memory.limit()
 # Change memory limit
   memory.limit(size = 15000)

Если я не ошибаюсь, по умолчанию ограничение на Windows составляет 4 ГБ. Вы можете использовать cmd, предложенный @rischan, но с незначительными изменениями: rstudio.exe --max-mem-size=8GB.

Для информации не забудьте почистить кеш при запуске выполнения нового скрипта. Для этого используйте следующий cmd:

    rm(list=ls())  --> for clean your environment
    gc() --> for launch the ''garbage collection''

Для меня проблема заключается в том, что функции пакета, которые я вызываю, игнорируют ограничение, независимо от того, какое значение я установил с помощью memory.limit. Я подумываю об использовании сторонних инструментов, чтобы ограничить процесс со стороны операционной системы.

Другие вопросы по тегам