我有一個R腳本,我想經常運行。幾個月前,當我寫作併發起時,沒有任何問題。 現在,我的腳本幾乎消耗了所有(99%)的CPU,並且比以前慢了很多。我正在服務器上運行腳本,其他用戶在腳本運行時遇到服務器響應緩慢。 我試圖找出它的速度慢的代碼段。以下循環幾乎全部使用腳本使用的CPU。爲什麼加載保存的R文件會增加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中的文件,那將是非常好的。
編輯:在代碼中增加了空格,使其更易於閱讀。
「花費更長時間」並不意味着「使用更多CPU」。你用什麼工具來檢查CPU和內存的使用情況?例如,如果Windows,--
; -T調出TaskMgr會讓你觀察這些。 'Rprof'可以告訴你哪個命令正在佔用流逝的時間。 –
我在linux中使用「top」命令查看CPU使用情況。我還通過在每次迭代中加載文件來檢查%CPU。這樣做會增加CPU的百分比。現在,在我看來,雖然我在每次迭代中都覆蓋它,但對象仍然保留在內存中(但我不確定)。注意:我在每次迭代中加載的所有保存的文件都具有相同的變量名稱。 – Abhishek
您是否嘗試過單獨檢查保存文件中的內容?這聽起來就像在那裏可能比你意識到的更多。 – Dason