看板 Grad-ProbAsk 關於我們 聯絡資訊
想請教大家一題原文書上面的題目,請參考下圖 https://i.imgur.com/NCvhvIR.jpg 我自己的想法是記憶體是row major存放資料,所以如果最外面的迴圈存的是row所以 可以一直存,直到一個page大小用完,即使外面迴圈跑兩次也沒關係,這是我看答案 的理解,但一直很難說服自己為什麼可以這樣。 相對的,如果外迴圈存的是column就沒辦法想像會怎麼跑了,只知道會產生相對多很 多的page fault。 另外再請教一個問題,在這兩種存矩陣的方式下所佔用的記憶體大小都一樣嗎? 是在new int[100][100]時就固定大小了嗎? 應該不會受到page fault的影響吧?這邊我會一直這樣卡住是因為會想到cache miss 會一直搬要存的block上來,懷疑說到底有沒有額外的記憶體空間浪費。 以上問題還有勞考題版各位幫忙,祝大家都金榜題名! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.35.92 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1542554057.A.8E4.html
aggress5566: http://bfy.tw/KvEa11/19 00:45
aggress5566: 至於new int[100][100] 我記得如果沒有 assign value11/19 00:51
aggress5566: 似乎是不會去 allocate memory 這要看實作了 11/19 00:52
skyHuan: 所以樓上有回答到問題嗎,小的資質駑鈍看不是很懂,更不11/19 13:38
skyHuan: 太懂是在噓?11/19 13:38
eggy1018: 抱歉我沒有引用好文章,但這題還是不能明白,希望各位大11/19 16:52
eggy1018: 大能幫忙11/19 16:52
※ 編輯: eggy1018 (223.137.113.142), 11/19/2018 16:55:35
aggress5566: 我的回答就是先去理解C-like 2D array memory layout 11/19 17:47
aggress5566: 我是根據原文的疑問猜想原PO的問題是什麼 11/19 17:48
aggress5566: 至於dynamic memory allocation 我自己的經驗是 11/19 17:55
aggress5566: call malloc的話 如果沒有assign value似乎是不會真 11/19 17:55
aggress5566: 的被swap out new的話也許概念上會類似 實作我沒有 11/19 17:56
aggress5566: 深究 另外推噓這種在PTT上沒什麼 大可以質疑我的推文 11/19 17:58