C++相談室 part6
■ このスレッドは過去ログ倉庫に格納されています
0183178
NGNGごめん遅いわ。とりあえず簡単化のために二次元でやってみたよ。
1000 × 1000 の配列を取って、a[i][j] = 0; を 1000 回やってみた。
>>176 版 28.922sec, >>178 版 30.344sec
だった。要は、メモリアクセス対乗算命令ってことだけど、乗算の方が
ちょっと遅いみたい。
ちなみに、アクセスしているところのコードはこんな感じ
(a[ecx][edx] = 0; のコード)...
>>176 版 (う〜〜〜ん、素直だ...)
mov eax, DWORD PTR _a1
mov ecx, DWORD PTR [eax+ecx*4]
mov DWORD PTR [ecx+edx*4], 0
>>178 版
mov eax, DWORD PTR _nCols
imul eax, ecx
mov ecx, DWORD PTR _a2
add eax, edx
mov DWORD PTR [ecx+eax*4], 0
>>180
> FORTRANじゃないんだから。
なんのこっちゃ ?
■ このスレッドは過去ログ倉庫に格納されています