Соответствующая справочная информация
Я создал небольшое программное обеспечение, которое можно настроить с помощью файла конфигурации. Файл конфигурации анализируется и переводится во вложенную структуру среды (например, .HIVE $ db = среда, .HIVE $ db $ user = "Horst", .HIVE $ db $ pw = "мой пароль", .HIVE $ regex $ дата = некоторое регулярное выражение для дат и т. д.)
Я создал подпрограммы, которые могут обрабатывать эти вложенные среды (например, искать значение «db / user» или «regex / date», изменять его и т. Д.). Дело в том, что первоначальный анализ файлов конфигурации занимает много времени и приводит к довольно большим объектам (на самом деле три к четырем, от 4 до 16 МБ). Поэтому я подумал: «Нет проблем, давайте просто кешируем их, сохраняя объекты в файлах .Rdata». Это работает, но «загрузка» кэшированных объектов заставляет мой процесс Rterm идти вверх, что связано с потреблением ОЗУ (более 1 ГБ !!), и я до сих пор не понимаю, почему (это не происходит когда я «вычисляю» объект заново, но это именно то, чего я пытаюсь избежать, так как это занимает слишком много времени).
Я уже думал о том, чтобы, возможно, сериализовать его, но я не тестировал его, так как мне нужно было бы немного изменить свой код. Кроме того, я не уверен, повлияет ли это на часть «загрузка обратно в R» так же, как загрузка файлов .Rdata.
Вопрос
Может кто-нибудь сказать мне, почему загрузка ранее вычисленного объекта оказывает такое влияние на потребление памяти моим процессом Rterm (по сравнению с вычислением его в каждом новом процессе, который я запускаю) и как лучше всего избежать этого?
При желании я также попытаюсь привести пример, но немного сложно воспроизвести мой точный сценарий. Еще попробую.