0

我已经编写了相对庞大的函数(大约 500 行;包括一些数据节省、学习 ANN 并进行预测),它的输出是 data.frames 列表,但问题是当输出应该是更大的列表时(例如 30 000 个数据.frames 在这个列表中)。我以这种方式使用该功能

output_list<-mclapply(c(1:30000),FUN,mc.cores=detectCores(),mc.preschedule=FALSE)

当我将它用于

c(1:1000)

大约需要 100 秒,每秒 10 个数据帧。但是当我使用它时,可以说

c(1:10000)

它显着减慢,大约需要 6500 秒。随着向量 c() 的增加,它越来越慢。

我试图通过减少 FUN 来解决它(对小向量 c() 的影响不大,但在更大的计算上也有同样的问题)

A 还尝试通过创建 for 循环来修复它,该循环计算 200 个案例并将它们放入空列表中,然后再计算 200 个计算,加入这个空列表(它还不是空的,它涉及最后一次计算的帧),然后再次直到最后都一样。

但结果是一样的,它再次急剧减速。我想该错误将在环境中的某个地方或某些内存问题中。有没有人有这方面的经验?任何建议如何解决它?计算仍然相同,所以我不明白为什么它对较小的计算效果很好,而对大型计算则减慢。谢谢你的建议。

4

0 回答 0