私は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要素をすべて格納できません。データを順番に処理すると、L2キャッシュ不足率が少なくなります。私たちの場合、列A、B、Cのように、行単位で処理し、同時に複数の列を読み込んで結果を作成する必要があります。メモリのレイアウトが最初の行に10個のアイテムを最初に格納し、次に2番目の行に10個のアイテムを格納すると、パフォーマンスが向上する可能性があります。
メモリレイアウトを制御する方法があれば、
'a'と' t(a')を比較して、行/列に多くの効果があるかどうかを調べることができます。 –