0

頻繁に実行したい R スクリプトがあります。数か月前に私がそれを書き始めたとき、問題はありませんでした。現在、私のスクリプトは CPU のほぼすべて (99%) を消費しており、以前よりも速度が低下しています。サーバーでスクリプトを実行していますが、スクリプトの実行中に他のユーザーからの応答が遅くなります。遅いコード部分を見つけようとしました。次のループは、スクリプトによって使用されるほぼすべての時間と CPU を消費しています。

for (i in 1:100){
    load (paste (saved_file, i, ".RData", sep=""))
    Do something (which is fast)
    assign (paste ("var", i, sep=""), vector)
}

読み込まれたデータは、各反復で約 11 MB です。任意の「i」に対して上記のスクリプトを実行すると、ファイル ステップのロードに他のコマンドよりも時間がかかります。フォーラムの投稿を読むのに数時間費やしましたが、問題についてのヒントを得ることができませんでした。私が欠けているものがあるかどうかを指摘したり、Rでファイルをロードするためのより効果的な方法を提案したりできれば、それは素晴らしいことです.

編集: 読みやすくするために、コードにスペースを追加しました。

4

1 に答える 1

0
paste(saved_file, i, ".RData", sep = "")

反復ごとに name xxx1、などのオブジェクトをロードしますxxx2rmループの最後でオブジェクトを試しましたか? 変数が再利用されているかどうかに関係なく、オブジェクトはメモリ内にとどまると思います。

ヒント: コードにスペースを追加すると (私がしたように)、読み取り/デバッグがはるかに簡単になります。

于 2013-10-17T14:58:38.323 に答える