|
|
|
|
@ -172,55 +172,55 @@ namespace perf_tests { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Stats big_for; |
|
|
|
|
for(int i = 0; i < sample_number; i++) { |
|
|
|
|
for(int sample = 0; sample < sample_number; sample++) { |
|
|
|
|
auto start = big_for.time_start(); |
|
|
|
|
for(int i = 0; i < sample_size; i++) { |
|
|
|
|
soa->a01[i] += soa->a02[i] + i; |
|
|
|
|
soa->a02[i] += soa->a03[i] + i; |
|
|
|
|
soa->a03[i] += soa->a04[i] + i; |
|
|
|
|
soa->a04[i] += soa->a05[i] + i; |
|
|
|
|
soa->a05[i] += soa->a06[i] + i; |
|
|
|
|
soa->a06[i] += soa->a07[i] + i; |
|
|
|
|
soa->a07[i] += soa->a08[i] + i; |
|
|
|
|
soa->a08[i] += soa->a09[i] + i; |
|
|
|
|
soa->a09[i] += soa->a10[i] + i; |
|
|
|
|
soa->a10[i] += soa->a11[i] + i; |
|
|
|
|
soa->a11[i] += soa->a12[i] + i; |
|
|
|
|
soa->a12[i] += soa->a13[i] + i; |
|
|
|
|
soa->a13[i] += soa->a14[i] + i; |
|
|
|
|
soa->a14[i] += soa->a15[i] + i; |
|
|
|
|
soa->a15[i] += soa->a16[i] + i; |
|
|
|
|
soa->a16[i] += soa->a17[i] + i; |
|
|
|
|
soa->a17[i] += soa->a18[i] + i; |
|
|
|
|
soa->a18[i] += soa->a19[i] + i; |
|
|
|
|
soa->a19[i] += soa->a20[i] + i; |
|
|
|
|
soa->a01[i] += soa->a02[i] + sample; |
|
|
|
|
soa->a02[i] += soa->a03[i] + sample; |
|
|
|
|
soa->a03[i] += soa->a04[i] + sample; |
|
|
|
|
soa->a04[i] += soa->a05[i] + sample; |
|
|
|
|
soa->a05[i] += soa->a06[i] + sample; |
|
|
|
|
soa->a06[i] += soa->a07[i] + sample; |
|
|
|
|
soa->a07[i] += soa->a08[i] + sample; |
|
|
|
|
soa->a08[i] += soa->a09[i] + sample; |
|
|
|
|
soa->a09[i] += soa->a10[i] + sample; |
|
|
|
|
soa->a10[i] += soa->a11[i] + sample; |
|
|
|
|
soa->a11[i] += soa->a12[i] + sample; |
|
|
|
|
soa->a12[i] += soa->a13[i] + sample; |
|
|
|
|
soa->a13[i] += soa->a14[i] + sample; |
|
|
|
|
soa->a14[i] += soa->a15[i] + sample; |
|
|
|
|
soa->a15[i] += soa->a16[i] + sample; |
|
|
|
|
soa->a16[i] += soa->a17[i] + sample; |
|
|
|
|
soa->a17[i] += soa->a18[i] + sample; |
|
|
|
|
soa->a18[i] += soa->a19[i] + sample; |
|
|
|
|
soa->a19[i] += soa->a20[i] + sample; |
|
|
|
|
} |
|
|
|
|
big_for.sample_time(start); |
|
|
|
|
} |
|
|
|
|
samples.soa_big_for.push_back(big_for); |
|
|
|
|
|
|
|
|
|
Stats many_for; |
|
|
|
|
for(int i = 0; i < sample_number; i++) { |
|
|
|
|
for(int sample = 0; sample < sample_number; sample++) { |
|
|
|
|
auto start = many_for.time_start(); |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a01[i] += soa->a02[i] + i; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a02[i] += soa->a03[i] + i; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a03[i] += soa->a04[i] + i; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a04[i] += soa->a05[i] + i; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a05[i] += soa->a06[i] + i; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a06[i] += soa->a07[i] + i; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a07[i] += soa->a08[i] + i; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a08[i] += soa->a09[i] + i; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a09[i] += soa->a10[i] + i; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a10[i] += soa->a11[i] + i; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a11[i] += soa->a12[i] + i; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a12[i] += soa->a13[i] + i; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a13[i] += soa->a14[i] + i; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a14[i] += soa->a15[i] + i; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a15[i] += soa->a16[i] + i; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a16[i] += soa->a17[i] + i; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a17[i] += soa->a18[i] + i; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a18[i] += soa->a19[i] + i; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a19[i] += soa->a20[i] + i; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a01[i] += soa->a02[i] + sample; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a02[i] += soa->a03[i] + sample; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a03[i] += soa->a04[i] + sample; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a04[i] += soa->a05[i] + sample; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a05[i] += soa->a06[i] + sample; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a06[i] += soa->a07[i] + sample; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a07[i] += soa->a08[i] + sample; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a08[i] += soa->a09[i] + sample; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a09[i] += soa->a10[i] + sample; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a10[i] += soa->a11[i] + sample; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a11[i] += soa->a12[i] + sample; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a12[i] += soa->a13[i] + sample; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a13[i] += soa->a14[i] + sample; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a14[i] += soa->a15[i] + sample; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a15[i] += soa->a16[i] + sample; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a16[i] += soa->a17[i] + sample; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a17[i] += soa->a18[i] + sample; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a18[i] += soa->a19[i] + sample; |
|
|
|
|
for(int i = 0; i < sample_size; i++) soa->a19[i] += soa->a20[i] + sample; |
|
|
|
|
many_for.sample_time(start); |
|
|
|
|
} |
|
|
|
|
samples.soa_many_for.push_back(many_for); |
|
|
|
|
@ -234,28 +234,28 @@ namespace perf_tests { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Stats ls_big_for; |
|
|
|
|
for(int i = 0; i < sample_number; i++) { |
|
|
|
|
for(int sample = 0; sample < sample_number; sample++) { |
|
|
|
|
auto start = ls_big_for.time_start(); |
|
|
|
|
for(auto& el : *ls) { |
|
|
|
|
el.a01 += el.a02 + i; |
|
|
|
|
el.a02 += el.a03 + i; |
|
|
|
|
el.a03 += el.a04 + i; |
|
|
|
|
el.a04 += el.a05 + i; |
|
|
|
|
el.a05 += el.a06 + i; |
|
|
|
|
el.a06 += el.a07 + i; |
|
|
|
|
el.a07 += el.a08 + i; |
|
|
|
|
el.a08 += el.a09 + i; |
|
|
|
|
el.a09 += el.a10 + i; |
|
|
|
|
el.a10 += el.a11 + i; |
|
|
|
|
el.a11 += el.a12 + i; |
|
|
|
|
el.a12 += el.a13 + i; |
|
|
|
|
el.a13 += el.a14 + i; |
|
|
|
|
el.a14 += el.a15 + i; |
|
|
|
|
el.a15 += el.a16 + i; |
|
|
|
|
el.a16 += el.a17 + i; |
|
|
|
|
el.a17 += el.a18 + i; |
|
|
|
|
el.a18 += el.a19 + i; |
|
|
|
|
el.a19 += el.a20 + i; |
|
|
|
|
el.a01 += el.a02 + sample; |
|
|
|
|
el.a02 += el.a03 + sample; |
|
|
|
|
el.a03 += el.a04 + sample; |
|
|
|
|
el.a04 += el.a05 + sample; |
|
|
|
|
el.a05 += el.a06 + sample; |
|
|
|
|
el.a06 += el.a07 + sample; |
|
|
|
|
el.a07 += el.a08 + sample; |
|
|
|
|
el.a08 += el.a09 + sample; |
|
|
|
|
el.a09 += el.a10 + sample; |
|
|
|
|
el.a10 += el.a11 + sample; |
|
|
|
|
el.a11 += el.a12 + sample; |
|
|
|
|
el.a12 += el.a13 + sample; |
|
|
|
|
el.a13 += el.a14 + sample; |
|
|
|
|
el.a14 += el.a15 + sample; |
|
|
|
|
el.a15 += el.a16 + sample; |
|
|
|
|
el.a16 += el.a17 + sample; |
|
|
|
|
el.a17 += el.a18 + sample; |
|
|
|
|
el.a18 += el.a19 + sample; |
|
|
|
|
el.a19 += el.a20 + sample; |
|
|
|
|
} |
|
|
|
|
ls_big_for.sample_time(start); |
|
|
|
|
} |
|
|
|
|
@ -263,27 +263,27 @@ namespace perf_tests { |
|
|
|
|
samples.ls_big_for.push_back(ls_big_for); |
|
|
|
|
|
|
|
|
|
Stats ls_many_for; |
|
|
|
|
for(int i = 0; i < sample_number; i++) { |
|
|
|
|
for(int sample = 0; sample < sample_number; sample++) { |
|
|
|
|
auto start = ls_many_for.time_start(); |
|
|
|
|
for(auto& el : *ls) el.a01 += el.a02 + i; |
|
|
|
|
for(auto& el : *ls) el.a02 += el.a03 + i; |
|
|
|
|
for(auto& el : *ls) el.a03 += el.a04 + i; |
|
|
|
|
for(auto& el : *ls) el.a04 += el.a05 + i; |
|
|
|
|
for(auto& el : *ls) el.a05 += el.a06 + i; |
|
|
|
|
for(auto& el : *ls) el.a06 += el.a07 + i; |
|
|
|
|
for(auto& el : *ls) el.a07 += el.a08 + i; |
|
|
|
|
for(auto& el : *ls) el.a08 += el.a09 + i; |
|
|
|
|
for(auto& el : *ls) el.a09 += el.a10 + i; |
|
|
|
|
for(auto& el : *ls) el.a10 += el.a11 + i; |
|
|
|
|
for(auto& el : *ls) el.a11 += el.a12 + i; |
|
|
|
|
for(auto& el : *ls) el.a12 += el.a13 + i; |
|
|
|
|
for(auto& el : *ls) el.a13 += el.a14 + i; |
|
|
|
|
for(auto& el : *ls) el.a14 += el.a15 + i; |
|
|
|
|
for(auto& el : *ls) el.a15 += el.a16 + i; |
|
|
|
|
for(auto& el : *ls) el.a16 += el.a17 + i; |
|
|
|
|
for(auto& el : *ls) el.a17 += el.a18 + i; |
|
|
|
|
for(auto& el : *ls) el.a18 += el.a19 + i; |
|
|
|
|
for(auto& el : *ls) el.a19 += el.a20 + i; |
|
|
|
|
for(auto& el : *ls) el.a01 += el.a02 + sample; |
|
|
|
|
for(auto& el : *ls) el.a02 += el.a03 + sample; |
|
|
|
|
for(auto& el : *ls) el.a03 += el.a04 + sample; |
|
|
|
|
for(auto& el : *ls) el.a04 += el.a05 + sample; |
|
|
|
|
for(auto& el : *ls) el.a05 += el.a06 + sample; |
|
|
|
|
for(auto& el : *ls) el.a06 += el.a07 + sample; |
|
|
|
|
for(auto& el : *ls) el.a07 += el.a08 + sample; |
|
|
|
|
for(auto& el : *ls) el.a08 += el.a09 + sample; |
|
|
|
|
for(auto& el : *ls) el.a09 += el.a10 + sample; |
|
|
|
|
for(auto& el : *ls) el.a10 += el.a11 + sample; |
|
|
|
|
for(auto& el : *ls) el.a11 += el.a12 + sample; |
|
|
|
|
for(auto& el : *ls) el.a12 += el.a13 + sample; |
|
|
|
|
for(auto& el : *ls) el.a13 += el.a14 + sample; |
|
|
|
|
for(auto& el : *ls) el.a14 += el.a15 + sample; |
|
|
|
|
for(auto& el : *ls) el.a15 += el.a16 + sample; |
|
|
|
|
for(auto& el : *ls) el.a16 += el.a17 + sample; |
|
|
|
|
for(auto& el : *ls) el.a17 += el.a18 + sample; |
|
|
|
|
for(auto& el : *ls) el.a18 += el.a19 + sample; |
|
|
|
|
for(auto& el : *ls) el.a19 += el.a20 + sample; |
|
|
|
|
ls_many_for.sample_time(start); |
|
|
|
|
} |
|
|
|
|
samples.ls_many_for.push_back(ls_many_for); |
|
|
|
|
@ -298,55 +298,55 @@ namespace perf_tests { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Stats moa_big_for; |
|
|
|
|
for(int i = 0; i < sample_number; i++) { |
|
|
|
|
for(int sample = 0; sample < sample_number; sample++) { |
|
|
|
|
auto start = moa_big_for.time_start(); |
|
|
|
|
for(int i = 0; i < sample_size; i++) { |
|
|
|
|
moa->s1[i].a01 += moa->s1[i].a02 + i; |
|
|
|
|
moa->s1[i].a02 += moa->s1[i].a03 + i; |
|
|
|
|
moa->s1[i].a03 += moa->s1[i].a04 + i; |
|
|
|
|
moa->s1[i].a04 += moa->s2[i].a05 + i; |
|
|
|
|
|
|
|
|
|
moa->s2[i].a05 += moa->s2[i].a06 + i; |
|
|
|
|
moa->s2[i].a06 += moa->s2[i].a07 + i; |
|
|
|
|
moa->s2[i].a07 += moa->s2[i].a08 + i; |
|
|
|
|
moa->s2[i].a08 += moa->s3[i].a09 + i; |
|
|
|
|
|
|
|
|
|
moa->s3[i].a09 += moa->s3[i].a10 + i; |
|
|
|
|
moa->s3[i].a10 += moa->s3[i].a11 + i; |
|
|
|
|
moa->s3[i].a11 += moa->s3[i].a12 + i; |
|
|
|
|
moa->s3[i].a12 += moa->s4[i].a13 + i; |
|
|
|
|
|
|
|
|
|
moa->s4[i].a13 += moa->s4[i].a14 + i; |
|
|
|
|
moa->s4[i].a14 += moa->s4[i].a15 + i; |
|
|
|
|
moa->s4[i].a15 += moa->s4[i].a16 + i; |
|
|
|
|
moa->s4[i].a16 += moa->s5[i].a17 + i; |
|
|
|
|
|
|
|
|
|
moa->s5[i].a17 += moa->s5[i].a18 + i; |
|
|
|
|
moa->s5[i].a18 += moa->s5[i].a19 + i; |
|
|
|
|
moa->s5[i].a19 += moa->s5[i].a20 + i; |
|
|
|
|
moa->s1[i].a01 += moa->s1[i].a02 + sample; |
|
|
|
|
moa->s1[i].a02 += moa->s1[i].a03 + sample; |
|
|
|
|
moa->s1[i].a03 += moa->s1[i].a04 + sample; |
|
|
|
|
moa->s1[i].a04 += moa->s2[i].a05 + sample; |
|
|
|
|
|
|
|
|
|
moa->s2[i].a05 += moa->s2[i].a06 + sample; |
|
|
|
|
moa->s2[i].a06 += moa->s2[i].a07 + sample; |
|
|
|
|
moa->s2[i].a07 += moa->s2[i].a08 + sample; |
|
|
|
|
moa->s2[i].a08 += moa->s3[i].a09 + sample; |
|
|
|
|
|
|
|
|
|
moa->s3[i].a09 += moa->s3[i].a10 + sample; |
|
|
|
|
moa->s3[i].a10 += moa->s3[i].a11 + sample; |
|
|
|
|
moa->s3[i].a11 += moa->s3[i].a12 + sample; |
|
|
|
|
moa->s3[i].a12 += moa->s4[i].a13 + sample; |
|
|
|
|
|
|
|
|
|
moa->s4[i].a13 += moa->s4[i].a14 + sample; |
|
|
|
|
moa->s4[i].a14 += moa->s4[i].a15 + sample; |
|
|
|
|
moa->s4[i].a15 += moa->s4[i].a16 + sample; |
|
|
|
|
moa->s4[i].a16 += moa->s5[i].a17 + sample; |
|
|
|
|
|
|
|
|
|
moa->s5[i].a17 += moa->s5[i].a18 + sample; |
|
|
|
|
moa->s5[i].a18 += moa->s5[i].a19 + sample; |
|
|
|
|
moa->s5[i].a19 += moa->s5[i].a20 + sample; |
|
|
|
|
} |
|
|
|
|
moa_big_for.sample_time(start); |
|
|
|
|
} |
|
|
|
|
samples.moa_big_for.push_back(moa_big_for); |
|
|
|
|
|
|
|
|
|
Stats moa_many_for; |
|
|
|
|
for(int i = 0; i < sample_number; i++) { |
|
|
|
|
for(int sample = 0; sample < sample_number; sample++) { |
|
|
|
|
auto start = moa_many_for.time_start(); |
|
|
|
|
|
|
|
|
|
for(auto& el : moa->s1) { |
|
|
|
|
el.a01 += el.a02 + i; |
|
|
|
|
el.a02 += el.a03 + i; |
|
|
|
|
el.a03 += el.a04 + i; |
|
|
|
|
el.a01 += el.a02 + sample; |
|
|
|
|
el.a02 += el.a03 + sample; |
|
|
|
|
el.a03 += el.a04 + sample; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for(int i = 0; i < sample_size; i++) { |
|
|
|
|
moa->s1[i].a04 += moa->s2[i].a05 + i; |
|
|
|
|
moa->s1[i].a04 += moa->s2[i].a05 + sample; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for(auto& el : moa->s2) { |
|
|
|
|
el.a05 += el.a06 + i; |
|
|
|
|
el.a06 += el.a07 + i; |
|
|
|
|
el.a07 += el.a08 + i; |
|
|
|
|
el.a05 += el.a06 + sample; |
|
|
|
|
el.a06 += el.a07 + sample; |
|
|
|
|
el.a07 += el.a08 + sample; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for(int i = 0; i < sample_size; i++) { |
|
|
|
|
@ -354,29 +354,29 @@ namespace perf_tests { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for(auto& el : moa->s3) { |
|
|
|
|
el.a09 += el.a10 + i; |
|
|
|
|
el.a10 += el.a11 + i; |
|
|
|
|
el.a11 += el.a12 + i; |
|
|
|
|
el.a09 += el.a10 + sample; |
|
|
|
|
el.a10 += el.a11 + sample; |
|
|
|
|
el.a11 += el.a12 + sample; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for(int i = 0; i < sample_size; i++) { |
|
|
|
|
moa->s3[i].a12 += moa->s4[i].a13 + i; |
|
|
|
|
moa->s3[i].a12 += moa->s4[i].a13 + sample; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for(auto& el : moa->s4) { |
|
|
|
|
el.a13 += el.a14 + i; |
|
|
|
|
el.a14 += el.a15 + i; |
|
|
|
|
el.a15 += el.a16 + i; |
|
|
|
|
el.a13 += el.a14 + sample; |
|
|
|
|
el.a14 += el.a15 + sample; |
|
|
|
|
el.a15 += el.a16 + sample; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for(int i = 0; i < sample_size; i++) { |
|
|
|
|
moa->s4[i].a16 += moa->s5[i].a17 + i; |
|
|
|
|
moa->s4[i].a16 += moa->s5[i].a17 + sample; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for(auto& el : moa->s5) { |
|
|
|
|
el.a17 += el.a18 + i; |
|
|
|
|
el.a18 += el.a19 + i; |
|
|
|
|
el.a19 += el.a20 + i; |
|
|
|
|
el.a17 += el.a18 + sample; |
|
|
|
|
el.a18 += el.a19 + sample; |
|
|
|
|
el.a19 += el.a20 + sample; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
moa_many_for.sample_time(start); |
|
|
|
|
|