Взломать перезапуск сеанса Rstudio в течение oop ... из Rstudio - PullRequest
0 голосов
/ 24 января 2020

В настоящее время я выполняю некоторые симуляции, которые заполняют большие объемы памяти. К сожалению, gc() и rm(list=ls()) не успешно освободили эту память на моей windows машине. Следовательно, мне пришлось искать способ перезапустить процесс, освободив память до windows. Я тратил несколько часов на форумы напрасно, так что вот мое рабочее решение для любых других пользователей, которые сталкиваются с той же проблемой.

Сохраняя итерацию как внешний файл и записывая rscript, который вызывает сам себя, сеанс может быть перезапущен в течение l oop из rstudio. В этом примере требуются следующие шаги:

Сохраните итерацию как отдельный файл .RData в рабочем каталоге.

iter <- 1
save(iter, file="iter.RData")

Создайте скрипт, который вызывает себя необходимое количество итераций. Сохраните следующий скрипт как «test_script.R»

###load iteration
library(rstudioapi)

load("iter.Rdata")

###insert function here.
time_now <- Sys.time()

###save output of function to a file.
save(time_now, file=paste0("time_", iter, ".Rdata"))

###update iteration
iter <- iter+1
save(iter, "iter.Rdata")

###restart session calling the script again
if(iter < 5){
restartSession(command='source("test_script.R")')
}

Наслаждайтесь!

...