Почему загрузка кэшированных объектов резко увеличивает потребление памяти, тогда как их вычисление не будет?

Соответствующая справочная информация

Я создал небольшое программное обеспечение, которое можно настроить с помощью файла конфигурации. Файл конфигурации анализируется и переводится во вложенную структуру среды (например, .HIVE $ db = среда, .HIVE $ db $ user = "Horst", .HIVE $ db $ pw = "мой пароль", .HIVE $ regex $ дата = некоторое регулярное выражение для дат и т. д.)

Я создал подпрограммы, которые могут обрабатывать эти вложенные среды (например, искать значение «db / user» или «regex / date», изменять его и т. Д.). Дело в том, что первоначальный анализ файлов конфигурации занимает много времени и приводит к довольно большим объектам (на самом деле три к четырем, от 4 до 16 МБ). Поэтому я подумал: «Нет проблем, давайте просто кешируем их, сохраняя объекты в файлах .Rdata». Это работает, но «загрузка» кэшированных объектов заставляет мой процесс Rterm идти вверх, что касается потребления оперативной памяти (более 1 ГБ !!), и я до сих пор не совсем понимаю, почему (этоне случается, когда я «вычисляю» объект заново, но это именно то, чего я пытаюсь избежать, так как это занимает слишком много времени).

Я уже думал о том, чтобы, возможно, сериализовать его, но я не тестировал его, так как мне нужно было бы немного реорганизовать мой код. Кроме того, я не уверен, повлияет ли это на часть «загрузка обратно в R» так же, как загрузка файлов .Rdata.

Вопрос

Может кто-нибудь сказать мне, почему загрузка ранее вычисленного объекта оказывает такое влияние на потребление памяти моим процессом Rterm (по сравнению с вычислением его в каждом новом процессе, который я запускаю) и как лучше всего избежать этого?

При желании я также попытаюсь привести пример, но немного сложнее воспроизвести мой точный сценарий. Еще попробую.

Ответы на вопрос(2)

Ваш ответ на вопрос