Rap*_*ter 8 memory performance caching r
我已经构建了一个可以通过配置文件自定义的小软件.配置文件被解析并转换为嵌套环境结构(例如.HIVE $ db =环境,.HIVE $ db $ user ="Horst",.HIVE $ db $ pw ="我的密码",.HIVE $ regex $ date =日期的一些正则表达式等)
我已经构建了可以处理那些嵌套环境的例程(例如,查找值"db/user"或"regex/date",更改它等).问题是配置文件的初始解析需要很长时间并导致相当大的对象(实际上是三到四个,在4到16 MB之间).所以我想"没问题,让我们通过将对象保存到.Rdata文件来缓存它们".这是有效的,但"加载"缓存的对象使我的Rterm进程在RAM消耗(超过1 GB !!)方面走过了顶峰,我仍然不明白为什么(当我"计算"时,这不会发生对象全部重新开始,但这正是我想要避免的,因为它需要太长时间).
我已经考虑过将序列化,但我还没有测试过,因为我需要稍微重构一下代码.另外,我不确定它是否会影响"加载回R"部分,就像加载.Rdata文件一样.
任何人都可以告诉我为什么加载一个先前计算的对象对我的Rterm进程的内存消耗有这样的影响(与我开始的每个新进程中计算它相比)以及如何最好地避免这种情况?
如果需要,我也会尝试提出一个例子,但重现我的确切场景有点棘手.但我会试试.
这可能是因为你创造的环境带着他们的祖先.如果您不需要祖先信息,则将此类环境的父级设置为emptyenv()(或者如果您不需要它们,则不要使用环境).
还要注意公式(当然还有函数)都有环境,所以也要注意这些.
| 归档时间: |
|
| 查看次数: |
195 次 |
| 最近记录: |