[Bug sanitizer/56630] gcc's address-sanitizer uses 75% more memory than clang's on simple testcase

markus at trippelsdorf dot de gcc-bugzilla@gcc.gnu.org
Sat Mar 16 10:31:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56630

--- Comment #2 from Markus Trippelsdorf <markus at trippelsdorf dot de> 2013-03-16 10:30:51 UTC ---
Looks like the sorting of a std::list container is mostly responsible:
  168     list<element_t> container(first, last);
  169     container.sort();

When I run just with size 10 I get:

markus@x4 ~ % c++ -O2 -fsanitize=address bench.cpp
markus@x4 ~ % time ./mem ./a.out
size            array   vector with pointers    vector with iterators   deque  
10              0.47            0.48            0.54                    1.06
list            set             multiset
13.69(!)        2.41            3.97
./mem ./a.out  21.80s user 0.99s system 99% cpu 22.791 total
peak=2736348  

Without the list test I get a reasonable result:
(238 //    run(list_test, buffer, buffer_end, n);)

markus@x4 ~ % time ./mem ./a.out
size            array   vector with pointers    vector with iterators
10              0.46            0.47            0.5
deque           set             multiset
1.03            1.93            3.71
./mem ./a.out  7.67s user 0.56s system 99% cpu 8.245 total
markus@x4 ~ % memusg: peak=1415416

For comparison clang:
markus@x4 ~ % clang++ -O2 -fsanitize=address bench.cpp
markus@x4 ~ % time ./mem ./a.out
size            array   vector with pointers    vector with iterators  deque
10              0.42            0.41            0.42                   0.96
list           set             multiset
5.73            2.93            5.69
./mem ./a.out  16.52s user 0.10s system 99% cpu 16.627 total
markus@x4 ~ % memusg: peak=229660



More information about the Gcc-bugs mailing list