[討論] R 什麼時候會複製物件

看板R_Language作者 (拒看低質媒體)時間11年前 (2013/05/04 11:22), 編輯推噓0(006)
留言6則, 2人參與, 最新討論串1/1
[問題類型]: 效能諮詢(我想讓R 跑更快) [軟體熟悉度]: 開發者(有撰寫R 的套件經驗) [問題敘述]: R 在怎樣的情況下會在記憶體中複製物件 [你的答案]: 我最近在研究這個問題, 我把研究結果也一併丟到stackoverflow: http://stackoverflow.com/questions/15759117/what-exactly-is-copy-on-modify-semantics-in-r-and-where-is-the-canonical-source 但是我不知道這樣做對不對。 結論是:R 除了copy-on-modify外,也只有在第一次的modification會複製物件 (無論該物件的reference有幾個) [關鍵字]: R, performance, copy-on-modify -- 歡迎加入 Taiwan R User Group : http://www.facebook.com/Tw.R.User 我們每週一都有在「政大公企中心(台北市金華街187號)西樓WB05」 舉辦Machine Learning / Data Mining Monday: 報名 http://www.meetup.com/Taiwan-R/ 聚會影片 https://www.youtube.com/user/TWuseRGroup -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.170.136.86

05/05 00:00, , 1F
基本上沒錯,但在計算上更大的問題並不僅在第一次複製.
05/05 00:00, 1F

05/05 00:01, , 2F
for(i in 1:5) a[,c(2,4,6)] <- i
05/05 00:01, 2F

05/05 00:02, , 3F
每個i迴圈, a 都會被整個複製(hidden)
05/05 00:02, 3F

05/05 00:03, , 4F
copy-on-modify可能才是大問題,這也是Rcpp能夠解決的.
05/05 00:03, 4F

05/05 00:05, , 5F
第一次複製,只要一開始宣告好,並不致於拖垮計算效能
05/05 00:05, 5F

05/22 00:27, , 6F
後來我發現一個函數: tracemem 可以用來抓這類問題
05/22 00:27, 6F
文章代碼(AID): #1HX7xUaC (R_Language)
文章代碼(AID): #1HX7xUaC (R_Language)