У меня проблемы с памятью, когда я генерирую много графиков и записываю их на устройства png / jpeg / eps.
require(ggplot2)
...
render <- function(x) {
fileName=paste(chartDir, "/", x$PACKED[1], ".png", sep="")
x <- x[,c("EFF_DATE", "variable", "value")]
png(fileName, width=1920, height=1000, units="px")
print(qplot(EFF_DATE, value, data = x, facets = variable ~ ., geom="line"))
dev.off()
}
d_ply(molten, "PACKED", render, .progress="tk")
Код неплохо прогрессирует для первых ~ 80 графиков, а затем ведет себя как вилочная бомбапосле этого потребляет 100% оперативной памяти в течение очень короткого времени.Я проверил размеры x, предоставленные qplot, и все они примерно одинаковы, так что это не данные.Код работает нормально, когда я комментирую строку PNG.У меня возникает та же проблема, когда я пытаюсь использовать ggsave из библиотеки ggplot2.
Если у кого-то есть подозрения относительно того, почему это происходит, то я хотел бы услышать это.Однако, в ожидании того, что никто этого не сделает, может кто-нибудь сказать мне, есть ли хороший инструмент для анализа кучи, который я могу запустить внутри R, чтобы выяснить, куда идет память и можно ли что-нибудь сделать для очистки на лету?Я действительно предпочел бы не прибегать к отладке двоичного файла.
С наилучшими пожеланиями, Грэм.