整列サイズ配列と非整列サイズ配列で動作しようとしましたが、結果がパズルで、非整列サイズ配列は整列サイズのアレイよりも速く、これは私のコードである:整列サイズ配列と非整列サイズ配列で速度が異なる
TimeMeter timeMeter;
const int N = 100000;
_Tp A[64];
_Tp B[65];
int szA = sizeof(A);
int szB = sizeof(B);
// Method 1
timeMeter.start();
for (int n = 0; n < N; n++)
{
memset(A, 0, szA);
}
timeMeter.stop();
printf("Method 1 Time usage = %f ms\n", timeMeter.span());
// Method 2
timeMeter.start();
for (int n = 0; n < N; n++)
{
memset(B, 0, szB);
}
timeMeter.stop();
printf("Method 2 Time usage = %f ms\n", timeMeter.span());
_Tp
がchar
(8)の場合:方法1つのコスト2.195msと方法2コスト2.175ms_Tp
がint
である(32)方法1コスト13.313ms、方法2コスト5.987ms_Tp
はdouble
(64)である:方法1つのコスト14.266msと方法2コスト11.304msint
がでなければならない自分自身だけ内で整列する必要がある、すなわちchar
は1バイト境界で整列されている必要があり
測定ごとにTimeMeterをリセットする必要がありますか? –
@MitchWheat 'stop'とそれに続く' start'がおそらくそれをリセットします。 –
@Seth:それは正常なAPIがすることです。 –