← Back to team overview

maria-developers team mailing list archive

Re: ptr_compare replace with memcmp and associated performance

 

My linux vs sparc testing, completely unequal buffers. One thing
I find really strange is that gcc -O3 memcmp was slower than gcc
without a -O option.

linux= 2.4ghz core2duo, gcc 4.3.2 64bit

linux> gcc -g -Wall -o a a.c

linux> ./a 100000000 8
100000000 repetitions
Testing memcmp ..... done,      3.268 seconds
Testing builtin memcmp ....... done,      3.272 seconds
Testing loop .... done,      6.416 seconds
Testing loop32 .... done,      2.432 seconds
Testing loop64 .... done,      1.792 seconds
Testing no-op .... done,      0.592 seconds

linux> ./a 100000000 256
100000000 repetitions
Testing memcmp ..... done,     10.561 seconds
Testing builtin memcmp ....... done,     10.565 seconds
Testing loop .... done,    174.943 seconds
Testing loop32 .... done,     46.299 seconds
Testing loop64 .... done,     22.569 seconds
Testing no-op .... done,      0.588 seconds

linux> gcc -g -Wall -O3 -o a a.c

linux> ./a 100000000 8
100000000 repetitions
Testing memcmp ..... done,      5.052 seconds
Testing builtin memcmp ....... done,      5.016 seconds
Testing loop .... done,      2.604 seconds
Testing loop32 .... done,      1.088 seconds
Testing loop64 .... done,      0.844 seconds
Testing no-op .... done,      0.588 seconds

linux> ./a 100000000 256
100000000 repetitions
Testing memcmp ..... done,     88.130 seconds
Testing builtin memcmp ....... done,     88.118 seconds
Testing loop .... done,     66.476 seconds
Testing loop32 .... done,     16.669 seconds
Testing loop64 .... done,      8.629 seconds
Testing no-op .... done,      0.584 seconds


sparc= Niagra2 sparcv9 1165 MHz, cc: Sun Ceres C 5.10 SunOS_sparc 2009/03/06

sparc> cc -m64 -o a a.c

sparc> ./a 10000000 8
10000000 repetitions
Testing memcmp ..... done,      2.060 seconds
Testing builtin memcmp ....... done,      2.060 seconds
Testing loop .... done,      4.171 seconds
Testing loop32 .... done,      1.450 seconds
Testing loop64 .... done,      0.987 seconds
Testing no-op .... done,      0.365 seconds

sparc> ./a 10000000 256
10000000 repetitions
Testing memcmp ..... done,      8.024 seconds
Testing builtin memcmp ....... done,      8.023 seconds
Testing loop .... done,    119.094 seconds
Testing loop32 .... done,     30.189 seconds
Testing loop64 .... done,     15.356 seconds
Testing no-op .... done,      0.361 seconds

sparc> cc -m64 -O3 -o a a.c

sparc> ./a 10000000 8
10000000 repetitions
Testing memcmp ..... done,      1.854 seconds
Testing builtin memcmp ....... done,      1.853 seconds
Testing loop .... done,      1.416 seconds
Testing loop32 .... done,      0.652 seconds
Testing loop64 .... done,      0.498 seconds
Testing no-op .... done,      0.189 seconds

sparc> ./a 10000000 256
10000000 repetitions
Testing memcmp ..... done,      7.818 seconds
Testing builtin memcmp ....... done,      7.817 seconds
Testing loop .... done,     35.465 seconds
Testing loop32 .... done,     10.228 seconds
Testing loop64 .... done,      5.020 seconds
Testing no-op .... done,      0.189 seconds


-Eric



Follow ups

References