出力がdata.framesのリストである比較的大きな関数(約500行。データの節約、ANNの学習、予測の取得を含む)を作成しましたが、問題は、出力がより大きなリスト(たとえば30 000データ)であると想定される場合ですこのリストの .frames)。私はこのように機能を使用します
output_list<-mclapply(c(1:30000),FUN,mc.cores=detectCores(),mc.preschedule=FALSE)
そして私がそれを使うとき
c(1:1000)
約 100 秒、1 秒あたり 10 data.frames かかります。しかし、私がそれを使用するとき、言ってみましょう
c(1:10000)
劇的に遅くなり、約 6500 秒かかります。また、ベクトル c() を増やすと、ますます遅くなります。
私はFUNを減らすことでそれを修正しようとしました(小さなベクトルc()にはほとんど影響しませんが、より大きな計算では同じ問題です)
A はまた、200 ケースを計算してそれらを空のリストに入れ、別の 200 の計算を計算する for ループを作成して、この空のリスト (まだ空ではなく、最後の計算のフレームが含まれていた) に参加することで、それを修正しようとしました。最後まで同じ。
しかし、結果は同じで、再び劇的に遅くなります。バグは環境またはメモリの問題のどこかにあると思います。誰もそれを経験したことがありますか?それを解決する方法について何かアドバイスはありますか?計算は同じなので、小さいものではうまく機能し、大きいものでは遅くなる理由がわかりません。アドバイスありがとうございます。