アセンブラヽ(`Д´)ノモルァ
■ このスレッドは過去ログ倉庫に格納されています
0370デフォルトの名無しさん
NGNG気になったので、BYTE転送、WORD転送、DWORD転送にわけて
アライメントは呼び出し時にそれぞれ dst+1, dst+2, dst と
1MBの転送時間を計測するように書き直してテストしてみた。
cmps?, movs?はsrcとdstを256バイトずらして破壊的にならないようにした。
結果。
Pentium III (x86 Family 6 Model 8 Stepping 6, GenuineIntel)では
読み込み系(lods?, scas?, cmps?) などはアライメントにほぼ影響なし。
DWORD境界DWORD転送を 1.00 とすると BYTE境界DWORD転送で1.10
DWORD境界WORD転送で 1.23、BYTE境界WORD転送で1.36
DWORD境界BYTE転送で 1.75、BYTE境界BYTE転送で1.74
つまり
読み込み時のアライメントの影響はあまりないが
WORD読み込みは DWORD読み込みより 30%前後遅く
BYTE読み込みは DWORD読み込みより 75%前後遅かった。
書き込み系(stos?, movs?) は全テストにおいてほぼ同一値。
転送単位、アライメントに関係ない結果に。。。
■ このスレッドは過去ログ倉庫に格納されています