我是R的新手。假設內存佈局對於數據幀和矩陣是相同的。數據幀(矩陣)性能:內存佈局
在下面的矩陣
一個=矩陣(1:10000000,1000000,10)
它具有1M行和10列。物理上是行還是列順序的內存?或者是物理內存首先存儲[1,1],[2,1],[3,1],[1M,1],[2,1]或[1,2],[1,2], .. [1,10],[2,1] ...?
假設10M元素的矩陣大小爲100M,L2高速緩存爲4M,則L2高速緩存不能存儲所有這10M元素。如果我們按順序處理數據,我們將會減少二級緩存缺失率。對於我們的情況,我們需要逐行處理並同時讀取幾列,例如列A,B,C,然後創建一些結果。如果內存的佈局首先在第一行中存儲10個項目,然後在第二行中存儲10個項目,則性能可能會更好。
如果有什麼辦法來控制內存佈局?
您可以嘗試比較使用`a`與`t(a`)來查看行/列是否有很大影響。 – 2011-01-19 14:55:14