rabbits2 2024-01-03 11:39 采纳率: 50%
浏览 138
已结题

R语言 运行速度慢 运行内存不够

各位友友们,我现在对R的一些问题充满困惑,有懂这方面的友友可以给我提些建议吗。十分感恩和感谢
因为我跑一个代码需要15小时左右,我最开始开了很多窗口一起跑,但发现内存不够。所以就根据网友们的意见尝试了很多其它的方法。①释放虚拟内存;②把更多的内存分配给R;③使用循环④parallel并行处理多核计算;⑤少开一些窗口,使用后台运行。其中只有③和④因为尝试后发现运行结果过慢,最后选择了放弃。
因为没有用循环,我就是每次一个代码运行完了,手动修改,然后运行下一个代码。但是目前出现了两个问题:
①我最开始能开4个窗口,然后使用后台运行,相当于我能一次跑8个代码。但越到后面,我开的窗口就越少了,因为会报错或者闪退,我想知道原因是什么,我能怎么改变
②我跑一个代码的时间消耗的时间更久了,以前只需要15小时,现在需要1天,两天甚至三天,我想知道原因是什么,我能怎么改变

  • 写回答

1条回答 默认 最新

  • yule.yang 2024-01-04 14:51
    关注

    问题 1:窗口数量减少导致报错或闪退

    这可能是由于计算资源不足或内存泄漏导致的。

    1. 内存释放: 确保每个代码运行完后释放所有占用的内存。在R中,你可以使用gc()函数进行垃圾回收。

    2. 监控内存使用: 使用R中的工具(如profmem包)来监控每个代码块的内存使用情况,以便及时发现潜在的问题。

    3. 减少并发运行: 降低并发运行的窗口数量,确保每个代码块有足够的内存和计算资源。

    4. 查看错误信息: 当报错或闪退时,查看相关的错误信息,这可能有助于定位具体的问题。

    问题 2:代码运行时间变长

    这可能是由于算法复杂度增加、数据量增大或代码中存在效率低下的部分。

    1. 代码优化: 优化你的R代码,确保它在运行时能够更有效地利用资源。使用R的一些优化技巧,如向量化操作,可以提高代码运行效率。

    2. 并行计算: 考虑重新尝试并行计算,但调整并行度以避免性能下降。

    3. 算法优化: 如果可能的话,检查你的算法,看看是否有更有效率的实现方式。

    4. 数据处理: 确保你的数据处理流程也是高效的,避免不必要的复杂性。

    5. 日志记录: 在代码中添加日志记录,以便追踪每个代码块的运行时间,帮助你找到效率低下的部分。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月18日
  • 已采纳回答 1月10日
  • 创建了问题 1月3日